mybatis--12.逆向工程的运用

本文介绍了MyBatis框架中常见的CRUD操作示例,包括如何使用Mapper接口进行数据的增删改查,并通过Example对象设置复杂的查询条件。还展示了如何利用Criteria对象构建动态SQL语句。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


 

1 介绍

1.1  mapper接口中的方法解析

 

1.2  example实例解析

mybatis的逆向工程中会生成实例及实例对应的example,example用于添加条件,相当where后面的部分 

xxxExampleexample = new xxxExample(); 

Criteriacriteria = new Example().createCriteria();

1.3  应用举例

1.3.1 查询

①   selectByPrimaryKey()

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

②   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 isnull order by username asc,email desc

注:在iBator逆向工程生成的文件XxxExample.java中包含一个static的内部类CriteriaCriteria中的方法是定义SQL语句where后的查询条件。 

1.3.2 插入数据

insert()

User user = new User();
user.setId("dsfgsdfgdsfgds");
user.setUsername("admin");
user.setPassword("admin")
user.setEmail("wyw@163.com");
XxxMapper.insert(user);
//相当于:insertintouser(ID,username,password,email) values ('dsfgsdfgdsfgds','admin','admin','wyw@126.com'); 

1.3.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);
//相当于:updateuserset password='wyw'where id='dsfgsdfgdsfgds'

③   updateByExample()updateByExampleSelective()

UserExample example = new UserExample();
Criteria criteria =example.createCriteria();
criteria.andUsernameEqualTo("admin");
User user = new User();
user.setPassword("wyw");
XxxMapper.updateByPrimaryKeySelective(user,example);
//相当于:updateuserset password='wyw'where username='admin'

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

 

1.3.4 删除数据

①  deleteByPrimaryKey()

XxxMapper.deleteByPrimaryKey(1); //相当于:deletefromuserwhere id=1 

②  deleteByExample()

UserExample example = new UserExample();
Criteria criteria =example.createCriteria();
criteria.andUsernameEqualTo("admin");
XxxMapper.deleteByExample(example);
//相当于:deletefromuserwhere username='admin'

1.3.5 查询数据数量

countByExample()

UserExample example = new UserExample();
Criteria criteria =example.createCriteria();
criteria.andUsernameEqualTo("wyw");
int count =XxxMapper.countByExample(example);
//相当于:select count(*) fromuserwhere username='wyw'

 

2  实例

2.1  条件查询

 

2.2  插入

去当前事务最后生成的主键

 

 




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值