通过mybatis插件自动生成代码
MyBatis 是一款标准的 ORM 框架,被广泛的应用于各企业开发中。MyBatis 最早是 Apache 的一个开源项目 iBatis,2010 年这个项目由 Apache Software Foundation 迁移到了 Google Code,并且改名为 MyBatis,2013 年 11 月又迁移到 Github。从 MyBatis 的迁移史,也可以看出源码托管平台的发展史,GitHub 目前已经成为世界上最大的开源软件托管平台,建议大家多多关注这个全球最大的同性社交网站。
MyBatis 支持普通的 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索封装。MaBatis 可以使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJO(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录。
作为一款使用广泛的开源软件,它的特点有哪些呢?
可以使用基于 XML 的 Mapper 配置文件来实现,也可以使用基于 Java 注解的 MyBatis 注解来实现,甚至可以直接使用 MyBatis 提供的 API 来实现。
是指自行定义的一个数据操作接口,类似于通常所说的 DAO 接口。早期的 Mapper 接口需要自定义去实现,现在 MyBatis 会自动为 Mapper 接口创建动态代理对象。Mapper 接口的方法通常与 Mapper 配置文件中的 select、insert、update、delete 等 XML 结点存在一一对应关系。
MyBatis 中所有的 Mapper 语句的执行都是通过 Executor 进行的,Executor 是 MyBatis 的一个核心接口。
是 MyBatis 的关键对象,是执行持久化操作的独享,类似于 JDBC 中的 Connection,SqlSession 对象完全包含以数据库为背景的所有执行 SQL 操作的方法,它的底层封装了 JDBC 连接,可以用 SqlSession 实例来直接执行被映射的 SQL 语句。
是 MyBatis 的关键对象,它是单个数据库映射关系经过编译后的内存镜像。SqlSessionFactory 对象的实例可以通过 SqlSessionFactoryBuilder 对象类获得,而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先定制的 Configuration 的实例构建出。
在我们具体的使用过程中,就是按照上述的流程来执行。
有些声音说使用代码生成工具不好,理由诸如:会不利于个人学习成长,生成的代码不好,可能使得一些初学者望而却步!
我要说,还是那句老话:工欲善其事必先利其器,善于使用工具可以大大提高工作效率,再现今社会效率就是王道。事情都是怎么简单怎么做,偷懒使社会进步。一些琐碎的事情,能交给工作去做就使用工具做,只有从琐碎的重复的劳动中摆脱出来,才能有时间专注其他,才能更好的思考业务,更好的做设计,才能提高代码质量,做出好的产品!
工具要灵活运用,能借几分力就借几分力,剩余的没办法就自己上手做,生成的代码不好就取对自己有用的进行修改使用。
能够生成PO类,能生成mapper映射文件(其中包括基本的增删改查功能)、能生成mapper接口。这可是省了很多功夫,即使你要做些修改,添加下自己需要的功能或删除自己不需要的功能。
maven工程、IDE是Intellij IDEA、mybatis-generator-maven-plugin插件。
Intellij IDEA也有几个mybatis-generator插件,可以安装使用,具体笔者也还没试过,这里不做介绍,有兴趣有时间可以研究一下。
修改pom.xml,添加mybatis-generator-maven-plugin插件
org.mybatis.generator
mybatis-generator-maven-plugin
1.3.2
src/main/resources/config/generatorConfig.xml
true
true
Generate MyBatis Artifacts
generate
org.mybatis.generator
mybatis-generator-core
1.3.2
路径参考pom.xml ->src/main/resources/config/generatorConfig.xml
mysql8 和mysql5
1、不能这样 driverClass="com.mysql.jdbc.Driver" 写了,应该修改成 driverClass="com.mysql.cj.jdbc.Driver"
2、解决java.sql.SQLException: The server time zone value '???ú±ê×??±??' is unrecognized or represents more than one time zone.
3、值得注意的是,在 Spring Boot 2.1.0 中,com.mysql.jdbc.Driver 已经过期,推荐使用 com.mysql.cj.jdbc.Driver。
ps:
1、svn提交代码时提示告警信息没有配置数据源当运行sql时,可以忽略,如果有强迫症可以配置取消
Warning:(13, 35) No data sources are configured to run this SQL and provide advanced code assistance. Disable this inspection via problem menu (Alt+Enter).
2、 通过配置清楚告警 editor -> inspection -> sql -> no datasource configured
Warning:(78, 10) SQL dialect is not configured.
3、svn提交时提示报错 Element type must be declared
Error:(5, 2) Element type "generatorConfiguration" must be declared.
找到报错位置,alt+enter:
1.Fetch external resource
2.Ignore external resource
3.Manually setup external resourc
参考
官网
中文译版
Maven依赖查询
MyBatisGeneator 详解博客地址
完