Mybatis如何自动生成数据库表结构总结

时间:2021-05-20

一般情况下,用Mybatis的时候是先设计表结构再进行实体类以及映射文件编写的,特别是用代码生成器的时候。

但有时候不想用代码生成器,也不想定义表结构,那怎么办?

这个时候就会想到Hibernate,然后想到它的hibernate.hbm2ddl.auto配置项。

所以手工创表的问题可以很方便的迅速用Hibernate来解决。 那有人问啦:就是不想用Hibernate才换的Mybatis,你这又兜回去了吗?

其实不是的,我们需要的就是单单一个hbm2ddl功能。

其实应该这么想:有一款工具能够自动根据注解的实体类来生成各种数据库相应的表结构,只需要加几个jar包 (经测试后只要7个)并且少量配置(3个配置项)

这款工具就是Hibernate。为什么不能是它呢!!!

原理说来也是超级的简单: 加入hibernate的包, 注解实体类,程序开始时初始化一下hibernate的SessionFactory并清除它。

示例:

需要的Hibernate相关的JAR包 (本例基于Hibernate5.0.7,仅需要7个):

hibernate-core-5.0.7.Final.jar

hibernate-commons-annotations-5.0.1.Final.jar

hibernate-jpa-2.1-api-1.0.0.Final.jar

geronimo-jta_1.1_spec-1.1.1.jar

jboss-logging-3.3.0.Final.jar

dom4j-1.6.1.jar

javassist-3.18.1-GA.jar

Hibernate.cfg.xml文件:(去掉多余的,精简后的内容)

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://mit(); } catch (Exception e) { rs = 0; session.rollback(); e.printStackTrace(); } finally { session.close(); } log.info("操作结果:" + rs); } @Test public void testMapperGetOne() { Integer id = 50; User user = null; SqlSession session = sf.openSession(); UserMapper userMapper = session.getMapper(UserMapper.class); user = userMapper.selectById(id); log.info(user); } @Test public void testMapperGetList() { String userName = "sunwii"; List<User> users = null; SqlSession session = sf.openSession(); UserMapper userMapper = session.getMapper(UserMapper.class); users = userMapper.selectByName(userName); for (User user : users) { log.info(user); } }}

<<Mybatis总结之如何自动生成数据库表结构>>

说明:

这里多余的步骤仅仅是为了存档下代码(以及方便一些初学者不看代码不知道怎么回事的原因:里边涉及了各种常用类型的转换和映射)。

本文中最重要的就是Hibernate的几个包的选取,以及配置文件的精简,还有就是加载Hibernate的SessionFactory的方法。

这些说来说去都是Hibernate的东西。跟Mybatis原本是没有一点关系的。只不过需要用于,那纯属相当于复习一下Hibernate了。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章