MyBatis的Mapper介面以及Example的執行個體函數及詳解

來源:互聯網
上載者:User

標籤:包括   tar   條件查詢   update   語句   lis   target   com   blank   

方法 說明
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之間條件
 一、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
  • 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
  • 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("[email protected]");XxxMapper.insert(user);//相當於:insert into user(ID,username,password,email) values (‘dsfgsdfgdsfgds‘,‘admin‘,‘admin‘,‘[email protected]‘);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
3.更新資料

①updateByPrimaryKey()

User user =new User();user.setId("dsfgsdfgdsfgds");user.setUsername("wyw");user.setPassword("wyw");user.setEmail("[email protected]");XxxMapper.updateByPrimaryKey(user);//相當於:update user set username=‘wyw‘, password=‘wyw‘, email=‘[email protected]‘ where id=‘dsfgsdfgdsfgds‘
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 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
  • 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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

updateByExample()更新所有的欄位,包括欄位為null的也更新,建議使用 updateByExampleSelective()更新想更新的欄位

4.刪除資料

①deleteByPrimaryKey()

XxxMapper.deleteByPrimaryKey(1);  //相當於:delete from user where id=1
  • 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
  • 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‘
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

MyBatis的Mapper介面以及Example的執行個體函數及詳解

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.