看过松哥视频的小伙伴都知道,我个人习惯用一个名叫 MyBatis Generator 的逆向工具,利用这个工具我们自动生成实体类和 mapper 接口以及对应的 xml 文件,MyBatis Generator 是一个独立工具,你可以下载它的 jar 包来运行、也可以在 Ant 或者 maven 中配置插件运行。
大家在松哥公众号后台回复 mybatis-gen 有这个工具的下载链接。
虽然我一直用这个工具,但是总感觉它太有年代感了,用久了有点腻。所以很多时候看到公众号里有人推荐其他的 MyBatis 逆向工具,我也都会去试一试,特别是一些 IDEA 中的插件。
这些插件我目前装了几个开源免费的,不过都不怎么好用,而且几乎都有 BUG。不过这块也有一些是付费的插件,付费的应该会好用一些,不过我没怎么试过,毕竟这并不是刚需。
去年我还自己开发了一个工具,手把手教大家完成一个自己的 MyBatis 逆向工具,还录了一个配套视频:
项目地址:
除了这些工具之外,我最近用的比较多的是一个 MyBatis-Plus 提供的,也是非常方便,如果你项目中用到了 MyBatis-Plus,那么这个工具还是特别好用的。
我给大家举一个简单例子。
首先我们创建一个 Spring Boot 工具,引入 Web、MyBatis、Freemarker 以及 MySQL 驱动,如下:
引入 Freemarker 是因为我们将来使用 Freemarker 做代码模板,松哥之前自己开发的那个逆向工程,里边使用的代码模版就是 Freemarker。
项目创建成功之后,引入 MyBatis-Plus 相关依赖,一共是两个:
1 | <dependency> |
一个是 MP 自己的依赖,还有一个是逆向工程的依赖。
接下来我们在 application.properties 中配置一下数据连接信息:
1 | spring.datasource.url=jdbc:mysql:///vhr?serverTimezone=Asia/Shanghai&useSSL=false |
上面三行是数据库连接的基本信息。最下面一行表示在 MP 将来查询的时候,不要自动进行列名转化。啥意思呢?比如我在 Book 类中有一个属性名为 authorName,那么在 MP 去数据库查询的时候,会自动把 authorName 转为 author_name,如果数据表在定义的时候刚好就是下划线那么没问题,但是如果数据表在定义的时候,不是下划线,那么自动转换之后就会出错,现在加上上面这个最后一行配置,就没问题了。
项目创建成功后,我们直接在单元测试中添加如下代码,进行代码生成:
1 | FastAutoGenerator.create("jdbc:mysql:///vhr?serverTimezone=Asia/Shanghai&useSSL=false", "root", "123") |
上面的配置分了四块:
- globalConfig:这个是全剧配置,配置了生成的代码注释中的作者信息;默认情况下,代码生成完毕后会自动打开生成的目录,disableOpenDir 方法表示禁用这个功能;fileOverride 方法即将被移除,未来会不可用;最后的 outputDir 方法则是指定生成代码的输出目录。
- packageConfig:这个是配置生成的包信息,parent 方法用来设置父包名;moduleName 设置父包模块名,这个参数的值加上 parent 的参数值,就是完整的包路径;最后面则是指定了生成的 mapper.xml 文件的位置。
- strategyConfig:这个是配置策略,对于我们来说,这里比较重要的就是配置需要逆向的表,将表名称挨个列出来。
- templteEngine:这个是配置模版引擎。
除了上面这些常规的配置外,如果你的需求比较特殊,也可以配置其他选项,具体的参考这个文档:
配置完成后,执行这段单元测试代码,生成相关代码,如下:
接下来,想做增删改查,直接做即可,像下面这样:
1 | @RestController |
IEmployeeService 继承自 IService,常规的增删改查该有的都有。
最近感觉这个比较好用,我一直在用这个,感兴趣的小伙伴不妨试试。
小伙伴们有什么好用的逆向工程工具欢迎留言推荐。