MyBatis的Mapper接口以及Example的實(shí)例函數(shù)及詳解

資料:http://blog.csdn.net/biandous/article/details/65630783

一、mapper接口中的方法解析

mapper接口中的函數(shù)及方法

方法功能說(shuō)明

int countByExample(UserExample example) thorws SQLException按條件計(jì)數(shù)

int deleteByPrimaryKey(Integer id) thorws SQLException按主鍵刪除

int deleteByExample(UserExample example) thorws SQLException按條件查詢

String/Integer insert(User record) thorws SQLException插入數(shù)據(jù)(返回值為ID)

User selectByPrimaryKey(Integer id) thorws SQLException按主鍵查詢

ListselectByExample(UserExample example) thorws SQLException按條件查詢

ListselectByExampleWithBLOGs(UserExample example) thorws SQLException按條件查詢(包括BLOB字段)。只有當(dāng)數(shù)據(jù)表中的字段類(lèi)型有為二進(jìn)制的才會(huì)產(chǎn)生。

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實(shí)例解析

mybatis的逆向工程中會(huì)生成實(shí)例及實(shí)例對(duì)應(yīng)的example,example用于添加條件,相當(dāng)where后面的部分?

xxxExample example = new xxxExample();?

Criteria criteria = new Example().createCriteria();

方法說(shuō)明

example.setOrderByClause(“字段名 ASC”);添加升序排列條件,DESC為降序

example.setDistinct(false)去除重復(fù),boolean型,true為選擇不重復(fù)的記錄。

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之間條件

三、應(yīng)用舉例

1.查詢

① selectByPrimaryKey()

User user = XxxMapper.selectByPrimaryKey(100); //相當(dāng)于select*fromuserwhereid =100

1

② selectByExample() 和 selectByExampleWithBLOGs()

UserExample example =newUserExample();Criteria criteria = example.createCriteria();criteria.andUsernameEqualTo("wyw");criteria.andUsernameIsNull();example.setOrderByClause("username asc,email desc");Listlist = XxxMapper.selectByExample(example);//相當(dāng)于:select* from user where username ='wyw'andusernameisnullorder by username asc,email desc

1

2

3

4

5

6

7

注:在iBator逆向工程生成的文件XxxExample.java中包含一個(gè)static的內(nèi)部類(lèi)Criteria,Criteria中的方法是定義SQL 語(yǔ)句where后的查詢條件。

2.插入數(shù)據(jù)

①insert()

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

1

2

3

4

5

6

7

3.更新數(shù)據(jù)

①u(mài)pdateByPrimaryKey()

User user =new User();user.setId("dsfgsdfgdsfgds");user.setUsername("wyw");user.setPassword("wyw");user.setEmail("wyw@163.com");XxxMapper.updateByPrimaryKey(user);//相當(dāng)于:update usersetusername='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);//相當(dāng)于:updateusersetpassword='wyw'whereid='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);//相當(dāng)于:updateusersetpassword='wyw'whereusername='admin'

1

2

3

4

5

6

7

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

4.刪除數(shù)據(jù)

①deleteByPrimaryKey()

XxxMapper.deleteByPrimaryKey(1);? //相當(dāng)于:deletefromuserwhereid=1

1

②deleteByExample()

UserExample example = new UserExample();Criteria criteria = example.createCriteria();criteria.andUsernameEqualTo("admin");XxxMapper.deleteByExample(example);//相當(dāng)于:deletefromuserwhereusername='admin'

1

2

3

4

5

5.查詢數(shù)據(jù)數(shù)量

①countByExample()

UserExample example = new UserExample();Criteria criteria = example.createCriteria();criteria.andUsernameEqualTo("wyw");int count = XxxMapper.countByExample(example);//相當(dāng)于:selectcount(*)fromuserwhereusername='wyw'

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,991評(píng)論 19 139
  • hibernate(20170731) 1.導(dǎo)包:hibernate-distribution-3.5.6-Fin...
    瀟湘雨smile閱讀 561評(píng)論 0 0
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類(lèi)相關(guān)的語(yǔ)法,內(nèi)部類(lèi)的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,778評(píng)論 18 399
  • 你還能如此嬌艷!
    寒江雪810閱讀 156評(píng)論 0 1
  • 今天和秀琴姐一起探討了下一步的提升計(jì)劃,在溝通過(guò)程中有非常大的收獲,想做一個(gè)分享。 第一,文化的差異導(dǎo)...
    風(fēng)兮勇者閱讀 228評(píng)論 0 0