天天看点

让Mybatis更好用的一些工具

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