MyBatis反向生成Example类的使用方式

网友投稿 661 2022-09-09


MyBatis反向生成Example类的使用方式

目录MyBatis反向生成Example类使用一、逆向工程二、Example类的生成三、Example类的使用四、使用方法MyBatis逆向工程生成Example类的方法总结一、mapper接口中的方法解析二、Example类解析三、小结一下

MyBatis反向生成Example类使用

一、逆向工程

MyBatis的逆向工程不仅仅可以生成和表相对应的实体类还可以根据数据库种的表自动生成Example类,我们可以用Example类

实现条件增删改查而不用自己再去写sql语句。

二、Example类的生成

只要在generatorConfig.xml 文件中用表名生成对应的实体类时将生成Example的信息都变为true即可。

enableCountByExample="true"

enableUpdateByExample="true"

enableDeleteByExample="true"

enableSelectByExample="true"

selectByExampleQueryId="false"

三、Example类的使用

打开一个Exapmle类我们会看到以下几个成员

protected String orderByClause;

protected Integer start;

protected Integer length;

protected boolean distinct;

protected List oredCriteria;

orderByClause:用于指定ORDER BY条件,这个条件没有构造方法,直接通过传递字符串值指定。

start和length:是分页时用来指定查询第几条数据到第几条数据的。

distinct:是用来指定是否要去重查询的,true为去重,false不去重。

oredCriteriia:是用来指定查询条DgeJhgOpc件的。

逆向工程生成的文件XxxExample.java中包含一个static 的内部类 Criteria ,在Criteria中有很多方法,主要是定义SQL 语 句where后的查询条件。

四、使用方法

在service种可以这么写

//指定要进行去重查询

userBankCardExample.setDistinct(true);

//指定查询条件

userBankCardExample.createCriteria().andUserIdEqualTo(iptUserBankCard.getUserId());

//调用查询方法

List userBankCadList = userBankCardDao.selectByExample(userBankCardExample);

注意:在调用upateExample()是更新所有字段,包括字段为null的也更新,建议使用 updateByExampleSelective()更新想更新的字段

MyBatis逆向工程生成Example类的方法总结

很早之前就在项目开发中多次使用MyBatis逆向工程生成的Example类,但一直没有对其下的方法做一个简单的总结,现总结如下:

一、mapper接口中的方法解析

mapper接口中的部分常用方法及功能如下:

方法

功能说明

int countByExample(UserExample example) thorws SQLException

按条件计数

int deleteByPrimaryKey(Integer id) thorws SQLException

按主键删除

int deleteByExample(UserExample example) thorws SQLException

按条件删除

String/Integer insert(User record) thorws SQLException

插入数据(返回值为ID)

User selectByPrimaryKey(Integer id) thorws SQLException

按主键查询

ListselectByExample(UserExample example) thorws SQLException

按条件查询

ListselectByExampleWithBLOGs(UserExample example) thorws SQLException

按条件查询(包括BLOB字段)。只有当数据表中的字段类型有为二进制的才会产生

int updateByPrimaryKey(User record) thorws SQLException

按主键更新

int updateByPrimaryKeySelective(User record) thorws SQLException

按主键更新值不为null的字段

int updateByExample(User record, UserExample example) thorws SQLException

按条件更新

int updateByExampleSelective(User record, UserExample example) thorws SQLException

按条件更新值不为null的字段

二、Example类解析

mybatis的逆向工程中会生成实体类及实体类对应的example类,example类用于添加条件,相当where后面的部分。

xxxExample example = new xxxExample();

Criteria criteria = nhttp://ew Example().createCriteria();

example类中的部分常用方法及功能如下:

方法

功能说明

example.setOrderByClause(“字段名 ASC”);

添加升序排列条件,DESC为降序

example.setDistinct(false)

去除重复,boolean型,true为选择不重复的记录

criteria.andXxxIsNull

添加字段xxx为null的条件

criteria.andXxxIsNotNull

添加字段xxx不为null的条件

criteria.andXxxEqualTo(value)

添加xxx字段等于value条件

criteria.andXxxNotEqualTo(value)

添加xxx字段不等于value条件

criteria.andXxxGreaterThan(value)

添加xxx字段大于value条件

criteria.andXxxGreaterThanOrEqualTo(value)

添加xxx字段大于等于value条件

criteria.andXxxLessThan(value)

添加xxx字段小于value条件

criteria.andXxxLessThanOrEqualTo(value)

添加xxx字段小于等于value条件

criteria.andXxxIn(List<?>)

添加xxx字段值在List<?>条件

criteria.andXxxNotIn(List<?>)

添加xxx字段值不在List<?>条件

criteria.andXxxLike(“%”+value+”%”)

添加xxx字段值为value的模糊查询条件

criteria.andXxxNotLike(“%”+value+”%”)

添加xxx字段值不为value的模糊查询条件

criteria.andXxxBetween(value1,value2)

添加xxx字段值在value1和value2之间条件

criteria.andXxxNotBetween(value1,value2)

添加xxx字段值不在value1和value2之间条件

注:在mybatis逆向工程生成的文件XxxExample.java中包含一个static的内部类Criteria,Criteria中的方法是定义SQL 语句where后的查询条件。

三、小结一下

XxxExample.java只能实现简单条件增删改查,复杂的功能还需要自己编写sql代码来实现。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:qperf 简要总结 - 延迟与带宽信息(Qperf性能差)
下一篇:OpenvSwitch — OvS-DPDK Hardware offload(openvswitch命令)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~