Mybatis-技术专区-Mapper接口以及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 按主键查询
- List selectByExample(UserExample example) thorws SQLException 按条件查询
- List selectByExampleWithBLOGs(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 = new Example().createCriteria();
- 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之间条件
三、应用举例
selectByExample() 和 selectByExampleWithBLOGs()
UserExample example = new UserExample();
Criteria criteria = example.createCriteria();
criteria.andUsernameEqualTo("wyw");
criteria.andUsernameIsNull();
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
注:在mybatis逆向工程生成的文件XxxExample.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.修改数据
③ updateByExample() 和 updateByExampleSelective()
UserExample example = new UserExample();
Criteria criteria = example.createCriteria();
criteria.andUsernameEqualTo("admin");
User user = new User();
user.setPassword("wyw");
XxxMapper.updateByPrimaryKeySelective(user,example);
//相当于:update user set password='wyw' where username='admin'
updateByExample()更新所有的字段,包括字段为null的也更新,建议使用 updateByExampleSelective()更新想更新的字段
4.删除数据
deleteByExample()
UserExample example = new UserExample();
Criteria criteria = example.createCriteria();
criteria.andUsernameEqualTo("admin");
XxxMapper.deleteByExample(example);
//相当于:delete from user where username='admin'
5.查询数据数量
①countByExample()
UserExample example = new UserExample();
Criteria criteria = example.createCriteria();
criteria.andUsernameEqualTo("wyw");
int count = XxxMapper.countByExample(example);
//相当于:select count(*) from user where username='wyw'
Mybatis-技术专区-Mapper接口以及Example的实例函数及详解的更多相关文章
- MyBatis的Mapper接口以及Example的实例函数及详解
来源:https://blog.csdn.net/biandous/article/details/65630783 一.mapper接口中的方法解析 mapper接口中的函数及方法 方法 功能说明 ...
- MyBatis逆向工程中的Mapper接口以及Example的实例函数及详解
一.mapper接口中的方法解析 mapper接口中的函数及方法 方法 功能说明 int countByExample(UserExample example) thorws SQLException ...
- mybatis中的mapper接口文件以及example类的实例函数以及详解
##Example example = new ##Example(); example.setOrderByClause("字段名 ASC"); //升序排列,desc为降序排列 ...
- Mybatis的逆向工程以及Example的实例函数及详解
Mybatis-generator是Mybatis的逆向工程 (根据数据库中的表生成java代码) Mybatis的逆向工程会生成实例及实例对应的example,example用于添加条件,相当于w ...
- mybatis如何根据mapper接口生成其实现类
SpringBoot集成mybatis mybatis的statement的解析与加载 mybatis如何根据mapper接口生成其实现类 mybatis的mapper返回map结果集 mybatis ...
- idea插件(mybatis框架下mapper接口快速跳转对应xml文件)亲测好用!
我相信目前在绝大部分公司里,主要使用的框架是S(spring)S(spring MVC)M(mybatis),其中mybatis总体架构是编写mapper接口,框架扫描其对应的mapper.xml文件 ...
- iBatis——自动生成DAO层接口提供操作函数(详解)
iBatis——自动生成DAO层接口提供操作函数(详解) 在使用iBatis进行持久层管理时,发现在使用DAO层的updateByPrimaryKey.updateByPrimaryKeySelect ...
- mybatis中的mapper接口文件以及selectByExample类的实例函数详解
记录分为两个部分,第一部分主要关注selectByExample类的实例函数的实现:第二部分讨论Mybatis框架下基本的实例函数. (一)selectByExample类的实例函数的实现 当你启动项 ...
- mybatis如何根据mapper接口生成其实现类(springboot)
序 mybatis里头给sqlSession指定执行哪条sql的时候,有两种方式,一种是写mapper的xml的namespace+statementId,如下: public Student fin ...
随机推荐
- Windows结束某个端口的进程
1.打开cmd命令窗口,输入命令:netstat -ano | findstr 8080,根据端口号查找对应的PID.结果如下: 发现8080端口被PID(进程号)为2188的进程占用. 2.根据PI ...
- Python---编辑器安装和print函数
Python---编辑器安装和print函数 -------------------------------------------------------- 一.Python是什么? Python是 ...
- 修改linux的mysql用户名和密码
MySQL数据库密码忘记之后,可以进入linux下修改原始密码,步骤为下.第一步:登陆服务器管理员权限.第二步:进入MySQL数据配置文件 [root@VM_0_8_centos ~]# vi /et ...
- 使用 pyenv 管理 Python 版本
http://einverne.github.io/post/2017/04/pyenv.html Posted on 04/22/2017 by Ein Verne | View revisio ...
- 8.为什么IntelliJ IDEA首次加载比较慢
double shift 很快,是有缓存,和快速索引 这面这二个文件,配置会缓存:会越来越在,
- Incorporating ASP.NET MVC and SQL Server Reporting Services, Part 2
In the last issue, I introduced you to the basics of incorporating SQL Server Reporting Services int ...
- [CF-GYM]Abu Tahun Mod problem题解
前言 这道题比较简单,但我还是想了好一会 题意简述 Abu Tahun很喜欢回文. 一个数组若是回文的,那么它从前往后读和从后往前读都是一样的,比如数组\(\left\{1\right\},\left ...
- 回归平方和 ESS,残差平方和 RSS,总体平方和 TSS
https://zhidao.baidu.com/question/565190261749684764.html 回归平方和 ESS,残差平方和 RSS,总体平方和 TSS 总变差 ...
- 一种算法的实现,几个相同大小的div组合在一起,判断是不是矩形
- [hadoop](3) MapReduce:创建计数器、任务状态和写入日志
前言 本章主要讲述了如何在mapreduce任务中添加自定义的计数器,从所有任务中聚合信息,并且最终输出到mapreduce web ui中得到统计信息. 准备工作 数据集:ufo-60000条记录, ...