mybatis的逆向工程中會生成實例及實例對應的example,example用於添加查詢條件,相當where後面的部分
。
方法 | 說明 |
---|---|
example.setOrderByClause(“字段名 ASC”) | 按“字段名”升序排列,DESC爲降序 |
example.setDistinct(false) | 去除重複,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之間 |
selectByExample()
/**
* select * from user where id = ? and pwd = ?
*/
UserExample example = new UserExample();
example.createCriteria().andIdEqualTo(id).andPwdEqualTo(pwd);
User user = userMapper.selectByExample(example);
updateByExample()
/**
* 更新實體類中所有的字段,沒有設置的屬性爲null
* update user set id = null, set nickname = '張三', set age = null where id = ?
* 當然這個sql執行會報錯,因爲id不能爲空
*/
User user = new User();
user.setNickname("張三");
UserExample userExample = new UserExample();
userExample.createCriteria().andIdEqualTo(id);
int res = userService.updateByExampleSelective(user, userExample);
updateByExampleSelective()
/**
* 實體類沒有設置的屬性爲null,mybatis會使用動態sql過濾掉,不更新該字段
* update user set nickname = '張三' where id = ?
*/
User user = new User();
user.setNickname("張三");
UserExample userExample = new UserExample();
userExample.createCriteria().andIdEqualTo(id);
int res = userService.updateByExampleSelective(user, userExample);
deleteByExample()
/**
* delete from user where id = ?
*/
UserExample userExample = new UserExample();
userExample.createCriteria().andIdEqualTo(id);
int res = userService.deleteByExample(userExample);
countByExample()
/**
* select count(*) from user where nickname = '張三'
*/
UserExample userExample = new UserExample();
userExample.createCriteria().andNicknameEqualTo("張三");
int res = userService.countByExample(userExample);