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的内部类Criteria,Criteria中的方法是定义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 插入
去当前事务最后生成的主键