Example.Criteria
example实例解析
mybatis的逆向工程中会生成实例及实例对应的example,example用于添加条件,相当where后面的部分
Example example = new Example(数据库表 对应的实体类.class);
Criteria criteria = example.createCriteria();
方法 说明
方法 | 说明 |
---|---|
example.setOrderByClause | (“字段名 ASC”); 添加升序排列条件,DESC为降序 |
example.setDistinct(false) | 去除重复,boolean型,true为选择不重复的记录。 |
criteria.andIsNull | 添加字段为null的条件 |
criteria.andIsNotNull | 添加字段不为null的条件 |
criteria.andEqualTo(key,value) | 添加字段等于value条件 |
criteria.andGreaterThan(value) | 添加字段大于value条件 |
criteria.andGreaterThanOrEqualTo(value) | 添加字段大于等于value条件 |
criteria.andLessThan(value) | 添加字段小于value条件 |
criteria.andLessThanOrEqualTo(value) | (“字段名 ASC”); 添加字段小于等于value条件 |
criteria.andIn(List<?>) | 添加字段值在List<?>条件 |
criteria.andNotIn(List<?>) | 添加字段值不在List<?>条件 |
criteria.andLike(key , “%”+value+”%”) | 添加字段值为value的模糊查询条件 |
criteria.andNotLike(key,“%”+value+”%”) | 添加字段值不为value的模糊查询条件 |
criteria.andBetween(value1,value2) | 添加字段值在value1和value2之间条件 |
criteria.andNotBetween(value1,value2) | 添加字段值不在value1和value2之间条件 |
三、应用举例
1.查询
① selectByPrimaryKey()
User user = XxxMapper.selectByPrimaryKey(100); //相当于select * from user where id = 100
② selectByExample() 和 selectByExampleWithBLOGs()
UserExample example = new UserExample(User.class);
Criteria criteria = example.createCriteria();
criteria.andEqualTo("age",age);
criteria.andIsNull();
example.setOrderByClause("username asc,email desc");
List<?>list = XxxMapper.selectByExample(example);
//相当于:select * from user where username = ‘wyw’ and username is null order by username asc,email desc
注:在iBator逆向工程生成的文件Example.java中包含一个static的内部类Criteria,Criteria中的方法是定义SQL 语句where后的查询条件。
2.插入数据
①insert()
User user = new User();
user.setId("dsfgsdfgdsfgds");
user.setUsername("admin");
user.setPassword("admin")
user.setEmail("wyw@163.com");
XxxMapper.insert(user);
//相当于:insert into user(ID,username,password,email) values (‘dsfgsdfgdsfgds’,‘admin’,‘admin’,‘wyw@126.com’);
3.更新数据
①updateByPrimaryKey()
User user =new User(); user.setId("dsfgsdfgdsfgds"); user.setUsername("wyw"); user.setPassword("wyw"); user.setEmail("wyw@163.com"); XxxMapper.updateByPrimaryKey(user); //相当于:update user set username='wyw', password='wyw', email='wyw@163.com' where id='dsfgsdfgdsfgds'
②updateByPrimaryKeySelective()
User user = new User();
user.setId("dsfgsdfgdsfgds");
user.setPassword("wyw");
XxxMapper.updateByPrimaryKey(user);
//相当于:update user set password=‘wyw’ where id=‘dsfgsdfgdsfgds’
③ updateByExample() 和 updateByExampleSelective()
UserExample example = new UserExample();
Criteria criteria = example.createCriteria();
criteria.andEqualTo("userName","admin");
User user = new User();
user.setPassword("wyw");
Mapper.updateByPrimaryKeySelective(user,example);
//相当于:update user set password=‘wyw’ where username=‘admin’
updateByExample()更新所有的字段,包括字段为null的也更新,建议使用 updateByExampleSelective()更新想更新的字段
4.删除数据
①deleteByPrimaryKey()
XxxMapper.deleteByPrimaryKey(1); //相当于:delete from user where id=1
②deleteByExample()
UserExample example = new UserExample();
Criteria criteria = example.createCriteria();
criteria.andEqualTo("userName","admin");
XxxMapper.deleteByExample(example);
//相当于:delete from user where username='admin'
5.查询数据数量
①countByExample()
UserExample example = new UserExample();
Criteria criteria = example.createCriteria();
criteria.andEqualTo("passWord","wyw");
int count = XxxMapper.countByExample(example);
//相当于:select count(*) from user where username=‘wyw’
Example.Criteria相关推荐
- WARNING:tensorflow:Layer gru will not use cuDNN kernels since it doesn‘t meet the criteria. It will
WARNING:tensorflow:Layer gru will not use cuDNN kernels since it doesn't meet the criteria. It will ...
- criteria创建criteria 左连接 再 添加 add example,报错 ClassCastException:
使用hibernate的criteria做关联查询,指定连接方式(左连接\右连接)来创建criteria2,先关联对象(tblMember) Criteria criteria2 = criteria ...
- Feature Selection Based on Mutual Information:Criteria of Max-Dependency, Max-Relevance,and Min-Redu
Feature Selection Based on Mutual Information:Criteria of Max-Dependency, Max-Relevance,and Min-Redu ...
- Hibernate的DetachedCriteria使用(含Criteria)
1.背景了解:Hibernate的三种查询方式 Hibernate总的来说共有三种查询方式:HQL.QBC和SQL三种,这里做简单的概念介绍,不详细进行展开. 1.1 HQL(Hibernate Qu ...
- hibernate中criteria的一些用法
最近在项目中使用 Spring 和 Hibernate 进行开发,有感于 Criteria 比较好用,在查询方法 设计上可以灵活的根据 Criteria 的特点来方便地进行查询条件的组装.现在对 ...
- 【Java Web开发指南】mybatis的Example[Criteria]的使用
Criteria英文是标准.条件和准则的意思 **在使用常规的mybatis时,我们经常碰到的问题就是条件式查询.在一个查询界面,查询条件较多,并且运算符并不总是=时,在后台就需要拼装sql语句.** ...
- java+criteriaquery_Hibernate动态条件查询(Criteria Query)
1.创建一个Criteria实例 net.sf.hibernate.Criteria这个接口代表对一个特定的持久化类的查询.Session是用来制造Criteria实例的工厂. Criteria cr ...
- nhibernate入门系列: 使用Criteria载入对象
nh会话提供一种使用表达式(就像SQL语句的where表达式)来载入数据的方法, 以取得满足条件的对象集合. 通过CreateCriteria方法, 可以取得一个ICriteria接口, 这个接口用于 ...
- (详细)Hibernate查询技术(Query、Session、Criteria),Hibernate的三种状态,Hibernate集合struts2实现登录功能(二)
一.Hibernate的三种查询方式(掌握) Hibernate中提供了三种查询方式: 1)Session的查询:按主键查询查询,方法为get或load 2)Query的查询:使用HQL语句或SQL语 ...
- 转:Hibernate中Criteria和DetachedCriteria的完整用法
原文地址:http://blog.sina.com.cn/s/blog_667528fd0100rkrf.html 设计上可以灵活的根据 Criteria 的特点来方便地进行查询条件的组装.现在对 H ...
最新文章
- java分解因式_用JAVA因式分解 并以9=3×3格式输出
- 解释ROM、RAM、SRAM、DRAM与FLASH在使用上的区别及其原因
- 【Floyed】工厂的烦恼(ssl 1762)
- 设计模式-发布订阅模式
- 我和 Spring 大神的一天
- VAE【keras实现】
- 数仓数据分层(ODS DWD DWS ADS)
- Python selenium 延时的几种方法
- [No000057]一个人默默背单词,小心被传染哦
- python之花瓣美女下载
- Vs2010 破解 序列号
- 【捣鼓】TypeError: “x” is not a constructor
- 小学信息技术 用计算机画画 教学目标,三年级下册信息技术教学计划4篇
- Debian10.9离线安装gcc(附离线包地址)
- Gitee上传代码保姆级教程(亲测有效)
- Android 地图导航调用百度地图、高德地图、腾讯地图,腾讯T3团队整理
- LA/NMP架构的介绍
- 量子通信借助计算机,量子通信再获重大进展!竟然是降噪耳机带来了启发
- 快手2019秋季校园招聘算法笔试B卷编程题 - 题解
- Oracle,UGA用户全局区域
热门文章
- 动态规划实现最优二叉树
- truncate分区表的操作,会导致全局索引失效?
- vue组件间常用的几种通信方式
- Java初学之标识符
- iPhone14p有4个看不见的升级点
- 线上投票活动怎么设置怎样设置投票怎样设置投票页面
- 【Android面试】Android面试题集锦 (陆续更新)(最新2012-6-18) eoe上看到的
- 网贷行业进入关键期,真正的分水岭正在显现 | 一点财经
- 服务器出租虚拟机系统,vm虚拟机能出租吗
- 谈一谈关于Combox中当SelectedIndex=“0“ 无效的问题