问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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里的代码什么意思

&lt;foreach collection="example.oredCriteria" item="criteria" separator="or" &gt;这是mybatis中的foreach批量更新操作。传入集合类型是example.oredCriteria循环变量是criteria&lt;choose &gt;&lt;when test="criterion.noValue" &gt;。。。&lt;/choose&gt;结构是条件判断如果满足就追加 本回答被提问者和网友采纳 已赞过 已踩过&lt; 你...

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里没有正常的。

as an example example的中文 example的用法 for an example example to an example of forexample什么意思 an example是什么意思 example
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ipad propro现在的报价是多少钱? 为什么用联想扬天T5900V型的配置的电脑打街头篮球卡得要死 联想杨天T5900v这台电脑 联想扬天T5900V的问题 联想扬天威M5900d 1899元特惠:1T硬盘+4年上门售后,性能如何? 英尺,英尺,寸,英寸,尺寸的 ,关系 我的E家用户怎么进入这个页面? 尿酸高为什么不能喝纯净水 怎么用我的E家无线上网? 长时间饮用纯净水会引起人,体,尿酸,高吗 mysql查询中文乱码 Mybatis无法查询中文的问题如何解决 mybatis操作mysql中文乱码 mybatis中文乱码怎么解决? mybatis入门,查询数据,中文显示乱码 工作转正申请书的自我评价 转正申请怎么写 企业员工转正申请书范文!! 转正申请怎么写? 小黄瓜条牛肉的做法 保安转正申请书怎么写 牛黄瓜条适合怎么做 工作转正申请书的基本格式是怎样的? 牛肉黄瓜条怎么做 文员简单的转正申请书 牛肉小黄瓜条 怎么做 我是从事技术员工作,工作转正申请书的范文怎么写? 牛肉小黄瓜条适合怎么做窍门 小黄瓜条怎么腌制 员工转正申请书怎么写? Mybatis新增出现异常 是不是乱码问题 mybatis插入mysql数据中文显示乱码?? Mybatis +sql server 插人中文乱码 利用mybatis怎样向数据库插入数据 mybatis 查询数据库返回值某字段是 List 该怎么搞? 为什么mybatis通过SQL只能查询英文数据库记录,不能查询中文 Mybatis使用MySQL模糊查询时输入中文检索不到结果怎么办 mybatis返回list时,返回0条数据 mybatis查询数据库时出现的问题! mybatis操作mysql中文乱码 sql查询的数据出现乱码问题 移动开发和app开发有什么不一样 梦见老公打骂儿子,儿子哭到吐。我让老公去死? 404 Not Found 梦见有两口子吵架孩子哭的 每次梦见老公骂孩子都会成真该怎么办 梦见和老婆吵架孩子哭。。。,,,, 梦见丈夫打儿子很重,自己哭醒? 今天做梦梦到老公说我,说我不乖,和孩子样,说我不乖和孩子样哭有糖吃,啥意思啊? 梦见孩子被人追和骂人孩子哭哎摔