以前有很多小伙伴问松哥微人事项目(https://github.com/lenve/vhr)... MyBatis 逆向工程在哪里?其实旧版微人事当时没有使用逆向工程,是我本身手动敲出来的,固然手动敲的工做量很是大。html
今年发出来的新版微人事,我使用了逆向工程自动生成实体类和 dao 层的代码。MyBatis 的逆向工程要么须要添加依赖,要么须要本身去网上下载 jar,用起来仍是有点麻烦,因此,今天和小伙伴们介绍一款 IntelliJ IDEA 上的免费开源插件,叫作 EasyCode,能够方便的根据数据库生成相应的代码。java
EasyCode 是基于 IntelliJ IDEA 开发的代码生成插件,支持自定义任意模板(Java,html,js,xml);只要是与数据库相关的代码均可以经过自定义模板来生成;支持数据库类型与 java 类型映射关系配置;支持同时生成生成多张表的代码,张表有独立的配置信息,彻底的个性化定义,规则由你设置。git
我本身也稍微体验了一把,仍是蛮方便的。github
首先点击 File->Settings->Plugins,而后搜索 EasyCode,以下:spring
安装成功以后,重启 IDEA。数据库
接下来我给你们演示一个如何在 Spring Boot 中使用 EasyCode。首先咱们在 IDEA 中建立一个 SpringBoot 项目,建立过程我就很少说了,若是你们不会,能够在我公众号后台回复 springboot
,有详细的教程。springboot
因为这个项目是基于 IDEA 上的 Database Tools 开发的,所以咱们首先要经过 IDEA 上的 Database 链接数据源。app
接下来配置你的数据库链接信息,若是没有检测到合适的数据库 Driver,点击左下角自动下载:工具
链接成功后,点击 OK。默认状况下没有展现链接下的数据库,须要咱们手动勾选,例如我这里要链接 vhr 数据库,以下:spa
作完前面三步,准备工做就算 OK 了,接下来就是生成代码了。例如我想给 vhr 中全部的代码生成实体类、dao 层以及 service 层,方式以下:
首先选中全部的表,而后右键单击,选择 Easy Code->Generate Code,以下:
第一次添加的时候,若是有数据库类型没有对应的 Java 类型,就会有提示,这个根据它的引导去添加映射关系便可,例如我在添加的时候,出了一个这个提示:
点击 Yes,而后去添加本身的类型映射:
添加成功以后,再去作代码生成,这下就能够了:
这里,若是项目是多模块项目,能够先选择代码生成的 Module,而后设置代码生成的 package,最后从下面勾选要生成的代码模版,点击 OK 便可。
在代码生成的过程当中,若是没检测到 package 下面有 service、dao 以及 entity 等包,工具会提示自动建立,点击 Yes 便可。
最终生成的代码以下:
至此,各层的代码基本都生成了。大部分小伙伴用到这一步可能就 OK 了。
固然若是你以为 EasyCode 自动生成的模版不够用,或者很差用,咱们也能够自定义模版。
例如,我想在生成的 dao 层代码中,额外添加一个不须要任何条件,获取全部数据的方法(默认的生成模版中没有这个方法)。
点击 File->Settings->Easy Code->Template Setting:
能够参考工具本身的定义方式,咱们如今先在dao.java 中,添加以下方法:
/** * 查询全部数据 * * @param $!tool.firstLowerCase($!{tableInfo.name}) 实例对象 * @return 对象列表 */ List<$!{tableInfo.name}> getAll();
而后再给它添加一个配套的 mapper.xml 中的方法,打开 mapper.xml ,添加以下方法:
<select id="getAll" resultMap="$!{tableInfo.name}Map"> select #allSqlColumn() from $!{tableInfo.obj.parent.name}.$!tableInfo.obj.name </select>
配置完成后,点击 OK。
接下来再去从新生成代码,就能够看到生成的方法中多了一个方法了,其余代码模版的定义与这个相似,我就再也不赘述了。
好了,小伙伴们不妨试试。