mybatis 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    按主鍵查詢
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.查詢

1.selectByPrimaryKey()

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

2.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
注:在iBator逆向工程生成的文件XxxExample.java中包含一個static的內部類Criteria,Criteria中的方法是定義SQL 語句where后的查詢條件

2.插入數據

1.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.更新數據

1.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'

2.updateByPrimaryKeySelective()

User user = new User();
user.setId("dsfgsdfgdsfgds");
user.setPassword("wyw");
XxxMapper.updateByPrimaryKey(user);
//相當於:update user set password='wyw' where id='dsfgsdfgdsfgds'

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.刪除數據

1.deleteByPrimaryKey()

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

5.查詢數據數量

1.countByExample()

UserExample example = new UserExample();
Criteria criteria = example.createCriteria();
criteria.andUsernameEqualTo("wyw");
int count = XxxMapper.countByExample(example);
//相當於:select count(*) from user where username='wyw'


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM