Mybatis生成工具的功能改进
介绍
根据自己的实际需求,在mybatis-generator-core基础上作了小小的功能改进。
增加了对Lombok插件的支持(generatorConfig.xml)
取消了生成的实体类中属性的get/set方法,增加了Lombok插件的@Data注解;
<!-- 增加对Lombok插件的支持 -->
<plugin type="org.mybatis.generator.plugins.LombokPlugin">
</plugin>
对tables标签进行了扩展,可根据查询字段生成查询条件,同时生成查询实体form和select相关的statement;
<table tableName="tb_user" domainObjectName="User" enableInsertSelective="false" enableUpdateByPrimaryKey="false">
<!-- 增加对查询条件的支持 -->
<conditionColumn columns="username,name,age"/>
</table>
Mapper.xml文件中生成where条件的statement
<sql id="queryConditions">
<where>
<if test="username != null and username != ''">
and username = #{username,jdbcType=VARCHAR}
</if>
<if test="name != null and name != ''">
and name = #{name,jdbcType=VARCHAR}
</if>
<if test="age != null ">
and age = #{age,jdbcType=INTEGER}
</if>
</where>
</sql>
生成的查询statement
<select id="selectListByForm" parameterType="cn.fetosoft.test.form.UserForm" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from tb_user
<include refid="queryConditions"></include>
<!-- 此处增加的是对分页的支持,可根据需要自行处理 -->
<include refid="base.orderAndPage"></include>
</select>
<select id="selectCountByForm" parameterType="cn.fetosoft.test.form.UserForm" resultType="java.lang.Integer">
select count(id) as c
from tb_user
<include refid="queryConditions"></include>
</select>
配置生成form查询实体(generatorConfig.xml)
<!-- 配置生成查询类Form -->
<javaFormGenerator targetPackage="cn.fetosoft.test.form"
targetProject="D:/git/mybatis-generator/src/main/java" />
对生成的mapper.xml文件进行了精简,只生成了基础的查增改删的statement
selectByPrimaryKey
selectListByForm
selectCountByForm
deleteByPrimaryKey
insert
updateByPrimaryKeySelective