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