Mybatis中example[Criteria]使用
发布网友
发布时间:2022-04-22 11:22
我来回答
共1个回答
热心网友
时间:2023-11-03 05:31
我们这个直接看源码看如何由example映射到sql语句
Stock.java
只有5个属性。
StockMapper.java:
我看只看countByExample接口,看名字就知道是返回给定example参数的结果个数。
再看
StockMapper.xml该方法实现:
很简单给定参数类型StockExample 返回Long类型 select count(*) from stock 返回满足条件的stock表中数据数量
再看<include refid="Example_Where_Clause" />
foreach表示循环,分隔符是or(或者)重点在于数据集oredCriteria,我们去给定参数StockExample中寻找oredCriteria
是一个List刚好和上面的集合对应了,看看单个Criteria是什么
再看GeneratedCriteria
我们发现Criteria里面居然还有一个list,我们翻上去看刚好与上面一个foreach里面还有一个foreach对应,那接下来研究Criterion
这就是该类的声明,里面有这些值,这时候应该结合着之前xml第二层foreach属性看了,知道这些值有啥用
一看我们根据when知道有四类情况,noValue,singleValue,betweenValue,listValue,对应着查询中四种情况
1.只是单纯是否非空
2.value=?多少查询
3.两者之间查询
4.在list中查询。
所以我们构建的查询参数就是criterion,看一下上面四种咋构建吧
以下均是lGeneratedCriterial类中方法,addCriterion是把生成的Criterion加到Ctriteria中
1.是否非空:
2.值查询
public Criteria andIdEqualTo(Integer value) {
addCriterion("id =", value, "id");
return (Criteria) this;
}
3.两者之间
public Criteria andSaleNotBetween(Integer value1, Integer value2) {
addCriterion("sale not between", value1, value2, "sale");
return (Criteria) this;
}
4.list
public Criteria andVersionNotIn(List<Integer> values) {
addCriterion("version not in", values, "version");
return (Criteria) this;
}
完结,相信通过上面的源码剖析,大家都知道如何构建查询条件了把。
总结
StockExample.java 构造
三个参数
orderByClause:返回结果升降排序,字段+空格+acs/dcs(升序/降序)例子count acs
setOrderByClause方法注入
distinct:true/false 返回结果去不去重复,setDistinct注入
oredCriteria:就是查询参数,之前狗讲了啥意思,构造方法
构造Criteria
收工。
Mybatis中example[Criteria]使用
1.是否非空:2.值查询 public Criteria andIdEqualTo(Integer value) { addCriterion("id =", value, "id");return (Criteria) this;} 3.两者之间 public Criteria andSaleNotBetween(Integer value1, Integer value2) { addCriterion("sale not between", value1, value2, "sale");return (...
mybatis中的updpleSelective方法怎么使用
在MyBatis中,updpleSelective方法提供了一种高效的方式来更新对象的部分属性,同时利用Example类进行条件查询。这个方法接受两个参数:一个是包含要更新属性值的对象(如果某些属性为null,则表示不进行修改),另一个是Example对象,用于指定查询的条件,包括排序和部分where条件。首先,创建一个Example对象,...
mybatis 使用criteria 查询xx and ( xx or xx)形式的sql
这种情况下你一个criteria是实现不了的,你再新建一个criteria,比如说他叫criteria2,然后criteria2.orEqualTo去实现你自己的OR实现,最后是这样的example.and(criteria2),这样输出的sql就是select * from 表 where ( ( valid = 1 ) and ( a=1 or b =2 ))。我觉得这样还是挺简单的。...
MyBatis逆向工程中Criteria criteria的方法传入的中文是乱码,该如何...
设置下文件的编码为utf8 nobom格式的试一试,一般出现乱码大概率就是文件编码的问题
Mybatis插件和通用Mapper使用
MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis 允许使用插件来拦截的方法调用包括:1、创建拦截器类:调试效果:2、在全局配置文件中注册拦截器:源码分析:Plugin类:3、测试;2.2、pagehelper分页插件使用:官网:https://pagehelper.github.io/ 1、引入jar包:2、...
Update_By_Example_Where_Clause里的代码什么意思
<foreach collection="example.oredCriteria" item="criteria" separator="or" >这是mybatis中的foreach批量更新操作。传入集合类型是example.oredCriteria循环变量是criteria<choose ><when test="criterion.noValue" >。。。</choose>结构是条件判断如果满足就追加 本回答被提问者和网友采纳 已赞过 已踩过< 你...
mybatis中的updatebyexampleselective方法怎么使用
Example example = new Example;example.createCriteria.andEqualTo); // 设置更新条件,根据ID更新 3. 调用`updateByExampleSelective`方法。java userMapper.updateByExampleSelective; // userMapper是MyBatis的Mapper接口实例 四、注意事项 使用`updateByExampleSelective`时,确保设置的更新条件能够唯一确定一条...
criteria 执行后生成的sql什么样
用过Hibernate的人都知道,hibernate 是可以配置 show_sql 显示 自动生成的SQL 语句,用format_sql 可以格式化SQL 语句,但如果用 mybatis 怎么实现这个功能呢, 在网上搜索了下,基本都是通过配置日志来实现的,比如配置我们最常用的 log4j.properties 来实现。log4j.properties 内容 程序代码 log4j....
criteria 怎么看sql
需要在日志里面配置一下 用过Hibernate的人都知道,hibernate 是可以配置 show_sql 显示 自动生成的SQL 语句,用format_sql 可以格式化SQL 语句,但如果用 mybatis 怎么实现这个功能呢, 在网上搜索了下,基本都是通过配置日志来实现的,比如配置我们最常用的 log4j.properties 来实现。log4j.properties 内容...
ibatis abator自动生成
Criteria是hibernate中用到的查询方式。ibatis里没有正常的。