通用Mapper介紹
介紹
通用Mapper都可以極大的方便開發(fā)人員∥裆可以隨意的按照自己的需要選擇通用方法熙兔,還可以很方便的開發(fā)自己的通用方法柠掂。
極其方便的使用MyBatis單表的增刪改查腐碱。支持單表操作年缎,
不支持通用的多表聯(lián)合查詢忍弛。
特別強調(diào)
不是表中字段的屬性必須加 @Transient 注解
使用方式
繼承通用的Mapper<T>,必須指定泛型<T>
例如下面的例子:
public interface UserInfoMapper extends Mapper<UserInfo> {
//其他必須手寫的接口...
}
重點強調(diào) @Transient 注解
許多人由于不仔細看文檔,頻繁在這個問題上出錯拜马。
如果你的實體類中包含了不是數(shù)據(jù)庫表中的字段渗勘,你需要給這個字段加上@Transient注解矾飞,
這樣通用Mapper在處理單表操作時就不會將標注的屬性當成表字段處理!
查詢
List<T> select(T t)
根據(jù)T對象中的屬性名稱查詢,類似于select * from table where t.username=xxx and t.mobile = xxxx
T selectOne(T t)
如果斷定T對象的查詢條件是一個,可以調(diào)用此方法,返回單個對象
T selectByPrimaryKey(Object id)
根據(jù)主鍵查詢
修改
int updateByPrimaryKeySelective(T t)
根據(jù)主鍵更新數(shù)據(jù),T對象里面有什么屬性就更新什么屬性,如果T對象沒有主鍵,拋出異常
int updateByPrimaryKey(T t)
根據(jù)主鍵更新數(shù)據(jù),需要把對象中所有的字段全部填充才能調(diào)用此方法,一般不常用!
int updateByPrimaryKeySelective(T t)
根據(jù)主鍵更新數(shù)據(jù),T對象里面有什么屬性就更新什么屬性,如果T對象沒有主鍵,拋出異常
新增
int insertSelective(T t)
插入數(shù)據(jù),需要有主鍵,有什么屬性插入什么屬性
int insert(T t)
插入數(shù)據(jù),需要有主鍵,需要數(shù)據(jù)庫表中的所有字段全都存在,否則插入失敗,此方法不常用
刪除
int delete(T t)
根據(jù)條件刪除數(shù)據(jù),原理同select(T)
int deleteByPrimaryKey(T t)
根據(jù)主鍵刪除