一、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 = 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之间条件

三、应用举例

1.查询

① selectByPrimaryKey()

User user = XxxMapper.selectByPrimaryKey(100); //相当于select * from user where id = 100

1

② 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

1

2

3

4

5

6

7

注:在iBator逆向工程生成的文件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');

1

2

3

4

5

6

7

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'

1

2

3

4

5

6

7

②updateByPrimaryKeySelective()

User user = new User();

user.setId("dsfgsdfgdsfgds");

user.setPassword("wyw");

XxxMapper.updateByPrimaryKey(user);

//相当于:update user set password='wyw' where id='dsfgsdfgdsfgds'

1

2

3

4

5

③ 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'

1

2

3

4

5

6

7

updateByExample()更新所有的字段,包括字段为null的也更新,建议使用 updateByExampleSelective()更新想更新的字段

4.删除数据

①deleteByPrimaryKey()

XxxMapper.deleteByPrimaryKey(1); //相当于:delete from user where id=1

1

②deleteByExample()

UserExample example = new UserExample();

Criteria criteria = example.createCriteria();

criteria.andUsernameEqualTo("admin");

XxxMapper.deleteByExample(example);

//相当于:delete from user where username='admin'

1

2

3

4

5

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的实例函数及详解

一.mapper接口中的方法解析 mapper接口中的函数及方法 方法 功能说明 int countByExample(UserExample example) thorws SQLException ...

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文件中$和#的用法及区别详解

https://www.2cto.com/database/201806/752139.html用了一段时间的Mybatis了,对于$和#的用法老是很迷糊,特此记下加深记忆. 简单来说 #{} 会在将 ...

mybatis从mapper接口跳转到相应的xml文件的eclipse插件

mybatis从mapper接口跳转到相应的xml文件的eclipse插件 前提条件 开发软件 eclipse 使用框架 mybatis 为了方便阅读源码,项目使用mybatis的时候,方便从mapp ...

Mybatis的Mapper接口方法不能重载

今天给项目的数据字典查询添加通用方法,发现里边已经有了一个查询所有数据字典的方法 List selectDictList(); 但我想设置的方法是根据数据字典的code查询出所 ...

MyBatis 中 Mapper 接口的使用原理

MyBatis 中 Mapper 接口的使用原理 MyBatis 3 推荐使用 Mapper 接口的方式来执行 xml 配置中的 SQL,用起来很方便,也很灵活.在方便之余,想了解一下这是如何实现的, ...

随机推荐

JavaScript性能优化

如今主流浏览器都在比拼JavaScript引擎的执行速度,但最终都会达到一个理论极限,即无限接近编译后程序执行速度. 这种情况下决定程序速度的另一个重要因素就是代码本身. 在这里我们会分门别类的介绍J ...

opencv6.1-imgproc图像处理模块之平滑与形态学操作

这个部分是的部分,这部分也是几大部分中例子最多的,其实这个教程的例子都很不错,不过有些看得出来还是c接口的例子,说明例子有些年头了,其实在&qu ...

HttpWebRequest访问时,错误:(401)未经授权。

HttpWebRequest访问时,错误:(401)未经授权. 某网页,我不想做登录界面,直接使用域的帐号密码来访问.如果网站设置成Window身份验证,单独的页面都没问题,而是通过使用HttpWeb ...

ubuntu,kali linux和windows三系统流水账——写给自己

我先说一下ubuntu和windows双系统安装的几种方法,最后总结kali linux的安装,想起什么写什么,所以有点乱.然后记录一下自己的使用过程中遇见的问题和解决的方法,还有我的个人建议. 我个 ...

Docker镜像拉不下来?试试这些

DaoCloud 加速器1.0(永久免费) DaoCloud是国内第一家Dock Hub加速器提供商 注意,加速器 2.0 需要使用 DaoCloud 自己的云服务器才可以使用.官方宣称会继续支持加速 ...

注册测绘师20180301-CNSS

GNSS:Global Navigation Satellite System(全球卫星导航系统)GPS:Global Positioning System(全球定位系统)GPS是美国的卫星导航系统. ...

java代码理解

public int maxProfit(int k, int[] prices) {            int pl = prices.length;            int nothin ...

[CTSC1999] 家园

使用并查集判断无解. 令月球是n+1,地球是0 枚举时长t,将点(地球.月球以及太空站)i拆为t个点(i,j)表示第j时刻的点i. 对于太空船云云建图,容量是h[i]. 源点S和(0,0)连边,容量k ...

pyhton字符串

a = 5 # 1 + 1 = 10 + 1 = 11 + 1 = 100 + 1 = 101print(a.bit_length()) # 计算一个数字的二进制长度. a = 10# print(t ...

iOS开发安全 架构

网络通讯.本地文件和数据.源代码三方面 网络通讯 安全的传输用户密码 客户端在登录时,使用公钥将用户的密码加密后,将密文传输到服务器.服务器使用私钥将密码解密,然后加盐 (Salt:在密码学中,是指通 ...

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐