通用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)
根据主键删除