博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mybatis-generator-core自动生成代码,支持生成中文注释、支持分页、提供BaseDao封装...
阅读量:6496 次
发布时间:2019-06-24

本文共 5899 字,大约阅读时间需要 19 分钟。

hot3.png

 

自定义修改mybatis-generator-core,更适合国内开发环境,目前只在mysql下做了测试;

码云地址:

一:主要修改信息如下:

   1:将原有实体类生成的英文注释修改为数据库中的中文注释

   2:将原有生成的Dao接口和Mapper.xml文件后面的Mapper更改为Dao;如:UserMapper.java 修改为:UserDao.java;UserMapper.xml修改为UserDao.xml;

   3:生成的配置文件和Dao中去除insert方法和updateById方法,因为insertSelective和updateByPrimaryKeySelective完全可以满足我们的需求

   4:强制生成的所有文件编码为UTF-8

   5.为生成的Dao方法中添加中文注释

   6.将原有Example相关示例类替换为Criteria

   7.增加分页插件,自动生成分页SQL

           

  8.增加分页插件和BaseDao插件    

           
           

注:如果需要使用,将这两个配置到generatorConfig.xml中即可,可以参考源码中的generatorConfigA.xml文件;BaseDao文件不是自动生成的,需要手动将提供的BaseDao.java文件复制到自己对应的目录 BaseDao.java文件目录:org.mybatis.generator.codegen.mybatis3.javamapper.elements.BaseDao;

废话说了这么多该上示例代码了:

1.实体

package ibatisData;/** *  * t_dict *  * @version 1.0 2017-04-16 */public class Dict {    /**     * 主键     * t_dict.id     */    private String id;    /**     * 字典的Key     * t_dict.dkey     */    private String dkey;    /**     * 主键
* * column:t_dict.id
* @return id */ public String getId() { return id; } /** * 主键
* * column:t_dict.id
* @param id */ public void setId(String id) { this.id = id; } /** * 字典的Key
* * column:t_dict.dkey
* @return dkey */ public String getDkey() { return dkey; } /** * 字典的Key
* * column:t_dict.dkey
* @param dkey */ public void setDkey(String dkey) { this.dkey = dkey; }}

 

2.Dao接口

BaseDao(所有Dao接口都继承该类):

package org.mybatis.generator.codegen.mybatis3.javamapper.elements;import java.io.Serializable;import java.util.List;import org.apache.ibatis.annotations.Param;/** * @author mybatis T表示与table表对应的实体类(Entity) E表示Entity对应的Param类 PK表示可能会用到主键 *         (比如Integer等) * @param 
对应的实体 * @param
对应查询参数实体 * @param
主键类型 */public interface BaseDao
{ int countByCriteria(E criteria); int deleteByCriteria(E criteria); int deleteByPrimaryKey(PK id); int insertSelective(T record); List
selectByCriteria(E criteria); T selectByPrimaryKey(PK id); int updateByCriteriaSelective(@Param("record") T record, @Param("param") E criteria); int updateByPrimaryKeySelective(T record);}

DictDao: 

package ibatisData;import com.lht.bp.api.common.BaseDao;import ibatisData.Dict;import ibatisData.DictCriteria;import java.util.List;import org.apache.ibatis.annotations.Param;public interface DictDao extends BaseDao
{}

3.XML映射文件

and ${criterion.condition}
and ${criterion.condition} #{criterion.value}
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
and ${criterion.condition}
#{listItem}
and ${criterion.condition}
and ${criterion.condition} #{criterion.value}
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
and ${criterion.condition}
#{listItem}
id, dkey, dvalue, group_id, dstatus, description, seq
delete from t_dict where id = #{id,jdbcType=VARCHAR}
delete from t_dict
SELECT LAST_INSERT_ID()
insert into t_dict
dkey,
dvalue,
group_id,
dstatus,
description,
seq,
#{dkey,jdbcType=VARCHAR},
#{dvalue,jdbcType=VARCHAR},
#{groupId,jdbcType=VARCHAR},
#{dstatus,jdbcType=INTEGER},
#{description,jdbcType=CHAR},
#{seq,jdbcType=INTEGER},
update t_dict
dkey = #{record.dkey,jdbcType=VARCHAR},
dvalue = #{record.dvalue,jdbcType=VARCHAR},
group_id = #{record.groupId,jdbcType=VARCHAR},
dstatus = #{record.dstatus,jdbcType=INTEGER},
description = #{record.description,jdbcType=CHAR},
seq = #{record.seq,jdbcType=INTEGER},
update t_dict
dkey = #{dkey,jdbcType=VARCHAR},
dvalue = #{dvalue,jdbcType=VARCHAR},
group_id = #{groupId,jdbcType=VARCHAR},
dstatus = #{dstatus,jdbcType=INTEGER},
description = #{description,jdbcType=CHAR},
seq = #{seq,jdbcType=INTEGER},
where id = #{id,jdbcType=VARCHAR}

更加详细的生成代码实例,请实际运行生成查看

码云地址:

转载于:https://my.oschina.net/ht896632/blog/880485

你可能感兴趣的文章
scikit-learn中文api
查看>>
一个完整的大作业--广州市社会保障(市民)卡服务网
查看>>
迭代器和生成器
查看>>
Vue 组件之间传值
查看>>
指向方法之委托(一)
查看>>
2013 Multi-University Training Contest 3 部分解题报告
查看>>
Linux 网桥配置命令:brctl
查看>>
jQuery中异步操作对象Deferred
查看>>
MVC设计模式
查看>>
在团队项目遇到的问题及解决方法。
查看>>
springcloud demo---config-client
查看>>
Django设置联合唯一约束 -- migrate时报错处理
查看>>
Java LeetCode 1.Two Sum
查看>>
前端面试题:css相关面试题
查看>>
shell命令的高级使用之---选择性copy
查看>>
最长回文子序列-----动态规划
查看>>
Vue国际化实现
查看>>
设计模式:单例模式
查看>>
FLASH位宽为8、16、32时,CPU与外设之间地址线的连接方法
查看>>
双网卡一般情况不能有两个网关 (转)
查看>>