java封装BaseDao,mybatis-generator-core自动生成代码,支持生成中文注释、支持分页、提供BaseDao封装...

本文介绍了如何修改mybatis-generator-core以适应国内开发环境,包括将实体类注释改为中文,调整Dao接口命名,移除不必要的方法,统一文件编码为UTF-8,添加中文注释,引入分页插件等。提供BaseDao接口示例及实体类、Dao接口和XML映射文件的修改内容,适合需要自定义MyBatis代码生成的开发者参考。
摘要由CSDN通过智能技术生成

自定义修改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

注:如果需要使用,将这两个配置到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

select

distinct

'true' as QUERYID,

from t_dict

order by ${orderByClause}

limit #{start} , #{end}

select

from t_dict

where id = #{id,jdbcType=VARCHAR}

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},

select count(*) from t_dict

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}

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

码云地址:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值