MyBatis--MyBatis的Mapper接口及Example實例函數

目錄

mapper接口中的方法解析

example實例解析

應用舉例

查詢

① selectByPrimaryKey()

② selectByExample() 和 selectByExampleWithBLOGs()

插入數據

①insert()

更新數據

① updateByPrimaryKey()

② updateByPrimaryKeySelective()

③ updateByExample() 和 updateByExampleSelective()

刪除數據

① deleteByPrimaryKey()

② deleteByExample()

查詢數據數量

① countByExample()


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

應用舉例

查詢

① selectByPrimaryKey()

相當於:

select * from user where id = 100

User user = XxxMapper.selectByPrimaryKey(100);

② selectByExample() 和 selectByExampleWithBLOGs()

相當於:

select * from user where username = 'wyw' and  username is null order by username asc,email desc

Criteria criteria = example.createCriteria();
criteria.andUsernameEqualTo("wyw");
criteria.andUsernameIsNull();
example.setOrderByClause("username asc,email desc");
List<?>list = XxxMapper.selectByExample(example);

注:在iBator逆向工程生成的文件XxxExample.java中包含一個static的內部類Criteria,Criteria中的方法是定義SQL 語句where後的查詢條件。

插入數據

insert()

相當於:

insert into user(ID,username,password,email) values ('dsfgsdfgdsfgds','admin','admin','[email protected]');

User user = new User();
user.setId("dsfgsdfgdsfgds");
user.setUsername("admin");
user.setPassword("admin")
user.setEmail("[email protected]");
XxxMapper.insert(user);

更新數據

updateByPrimaryKey()

相當於:

update user set username='wyw', password='wyw', email='[email protected]' where id='dsfgsdfgdsfgds'

User user =new User();
user.setId("dsfgsdfgdsfgds");
user.setUsername("wyw");
user.setPassword("wyw");
user.setEmail("[email protected]");
XxxMapper.updateByPrimaryKey(user);

updateByPrimaryKeySelective()

相當於:

update user set password='wyw' where id='dsfgsdfgdsfgds'

User user = new User();
user.setId("dsfgsdfgdsfgds");
user.setPassword("wyw");
XxxMapper.updateByPrimaryKey(user);

updateByExample() 和 updateByExampleSelective()

相當於:

update user set password='wyw' where username='admin'

UserExample example = new UserExample();
Criteria criteria = example.createCriteria();
criteria.andUsernameEqualTo("admin");
User user = new User();
user.setPassword("wyw");
XxxMapper.updateByPrimaryKeySelective(user,example);

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

刪除數據

deleteByPrimaryKey()

相當於:

delete from user where id=1

XxxMapper.deleteByPrimaryKey(1);

② deleteByExample()

相當於:

delete from user where username='admin'

UserExample example = new UserExample();
Criteria criteria = example.createCriteria();
criteria.andUsernameEqualTo("admin");
XxxMapper.deleteByExample(example);

查詢數據數量

① countByExample()

相當於:

select count(*) from user where username='wyw'

UserExample example = new UserExample();
Criteria criteria = example.createCriteria();
criteria.andUsernameEqualTo("wyw");
int count = XxxMapper.countByExample(example);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章