1. Mybatis Generator
Mybatis代码生成器:POJO,Mapper接口,SQL Map XML
http://www.mybatis.org/generator/
在生成策略中可以加一些常用的plugins,比如:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!-- 数据库驱动 -->
<classPathEntry location="sqljdbc4.jar" />
<context id="DB2Tables" targetRuntime="MyBatis3">
<plugin type="org.mybatis.generator.plugins.FluentBuilderMethodsPlugin" />
<plugin type="org.mybatis.generator.plugins.ToStringPlugin" />
<plugin type="org.mybatis.generator.plugins.SerializablePlugin" />
<plugin type="org.mybatis.generator.plugins.RowBoundsPlugin" />
<commentGenerator>
<property name="suppressDate" value="false" />
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="false" />
</commentGenerator>
<!--数据库链接URL,用户名、密码 -->
<jdbcConnection driverClass="com.microsoft.sqlserver.jdbc.SQLServerDriver" connectionURL="jdbc:sqlserver://192.168.110.223:1433;databaseName=Test" userId="sa" password="123456">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- 生成模型的包名和位置 -->
<javaModelGenerator targetPackage="com.Delivery.dao.model"
targetProject="F:\myibatisGen\src">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- 生成映射文件的包名和位置 -->
<sqlMapGenerator targetPackage="com.Delivery"
targetProject="F:\myibatisGen\src">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!-- 生成DAO的包名和位置 MIXEDMAPPER(混合模式,部分sql以注解的方式在mapper方法上) XMLMAPPER-->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.Delivery.dao" targetProject="F:\myibatisGen\src">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<table tableName="O_Delivery"
enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false">
</table>
</context>
</generatorConfiguration>
其中,FluentBuilderMethodsPlugin可以生成对象构造器.with函数, new Object().withA("").withB("");
官方推荐的Generator Plugins中,并没有lombok,如果要加入这个plugins,可以参考:
https://www.cnblogs.com/cblogs/p/9720370.html
顺带提下:lombok常用注解有:
@Data :等同于equals、canEquals、hashCode、toString方法
@Builder:构造对象:obj = Class.builder() .name("foo") .id(1) .build(); 或者 obj = obj.toBuilder() .name("foo") .id(1) .build(); 结合@Builder(toBuilder = true)使用。
@Setter @Getter @NotNull @Log @NoArgsConstructor @AllArgsConstructor @ToStirng
如果把 enableCountByExample=“false” enableUpdateByExample=“false”
enableDeleteByExample=“false” enableSelectByExample=“false”
selectByExampleQueryId=“false” 都改成true,就能生成***Example.java 的POJO文件,
然后就能用 .createCriteria() java api去构造or,and ,notlike等等类似于sql语法的where条件对象用于CRUD,
不过我个人很少用,原因是可读性没有sql直观,再者遇到问题调试起来没有sql方便。
2. Mybaits PageHelper
方便使用的分页插件
https://github.com/pagehelper/Mybatis-PageHelper