Mybatis generator在2017年12月发布了version 1.3.6,在该版本添加了新的TargetRuntime:
MyBatis Dynamic SQL(mybatis 动态SQL)
Mybatis Dynamic Sql与以前TargetRuntime相比较:
- 移除了XXXExamle类和xml文件,代价是不兼容其他的TargetRuntime
- java版本限制,生成器将需要运行Java 8,低版本可能会出现错误
- 代码逻辑相对以前,使用了 lambda表达式,是的较容易理解
- 移除了iBatis2代码生成的支持
本文将用Intellij IDEA为编译器,Gradle作为项目管理器(个人觉得gradle相对maven来说,代码少太多了),试用Mybatis Dynamic SQL
第一步,安装Intellij IDEA, 请自行百度
第二步,安装Gradle,可忽略IDEA会自行下载
第三步,创建SpringBoot Gradle项目
项目创建成功
点击import Changes自动下包
项目初始结构如下
在resources下建立mybatis-generator.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" 3 "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> 4 <generatorConfiguration> 5 <!--mybatis targetRuntime选择 该测试需要MyBatis3DynamicSQL--> 6 <context id="MySql" targetRuntime="MyBatis3DynamicSQL"> 7 <commentGenerator> 8 <property name="suppressAllComments" value="true"/> 9 <property name="suppressDate" value="true"/> 10 </commentGenerator> 11 <!--数据库连接--> 12 <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" 13 connectionURL="jdbc:mysql://localhost:3306/nice_test?serverTimezone=UTC&useSSL=false" 14 userId="pigge" password="123456"/> 15 <!--类型解析器--> 16 <javaTypeResolver type="org.mybatis.generator.internal.types.JavaTypeResolverDefaultImpl"> 17 <!--是否对整型进行分类--> 18 <property name="forceBigDecimals" value="true"/> 19 <!--是否试用jdk8时间类--> 20 <property name="useJSR310Types" value="true"/> 21 </javaTypeResolver> 22 <!--java实体类生成配置--> 23 <javaModelGenerator targetPackage="com.pigge.mybatistest.entity" targetProject="src\main\java"> 24 <!--此属性用于选择MyBatis Generator是否将根据内省表的目录和架构为对象生成不同的Java包。--> 25 <property name="enableSubPackages" value="true"/> 26 <!--去除字段空格--> 27 <property name="trimStrings" value="true"/> 28 </javaModelGenerator> 29 <!--mapper生成配置--> 30 <javaClientGenerator type="ANNOTATEDMAPPER" targetPackage="com.pigge.mybatistest.mapper" targetProject="src\main\java"> 31 <!--此属性用于选择MyBatis Generator是否将根据内省表的目录和架构为对象生成不同的Java包。--> 32 <property name="enableSubPackages" value="true"/> 33 </javaClientGenerator> 34 <!--数据表的选择--> 35 <table schema="nice_test" tableName="user"/> 36 <table schema="nice_test" tableName="role"/> 37 <table schema="nice_test" tableName="authority"/> 38 <table schema="nice_test" tableName="login_record"/> 39 </context> 40 </generatorConfiguration>