通用Mapper
通用mapper
通用Mapper的作者也为自己的插件编写了启动器,我们直接引入即可:
<!-- 通用mapper -->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.0.2</version>
</dependency>
@Mapper
public interface UserMapper extends tk.mybatis.mapper.common.Mapper<User>{
}
//继承mapper类并以User作为泛型
@Table(name = "user") //查询表名
@Id //表示主键
@GeneratedValue(strategy = GenerationType.IDENTITY) //获取主键自增Oracle AUTO
通用Mapper的常见方法解析:
查询
select(T t) :根据传入对象属性查询,返回实体类元素集合。
selectOne(T t)) :根据传入的对象属性查询,存在多个返回值时抛出异常。
selectAll() :返回实体类元素集合。
selectCount(T t)) :根据传入的对象属性查询,返回总记录数。
删除
delete(T t)) 根据传入对象属性,删除所有查找到的记录。
deleteByPrimaryKey(Object key) 根据传入的主键,删除对应记录
更新
updateByPrimaryKey(Object o) 根据传入对象属性,更新所有字段 。
updateByPrimaryKeySelective(T t) 只更新对象属性非空字段 。
插入
insert(T t)) 根据传入对象属性,插入所有属性对应的字段。
insertSelective(T t)) 根据传入对象属性,只插入对象属性非空字段
复杂条件查询
通用Mapper复杂条件查询使用的是Example,示例语法如下:
Example example = new Example(User.class);
Criteria criteria = example.createCriteria()
criteria.andLike("name","%"+name+"%");
userDao.selectByExample(example);
初始化example对象
Example example = new Example(Brand.class);
Example.Criteria criteria = example.createCriteria();
排序条件
example.setOrderByClause(sortBy + " " + (desc ? "desc" : "asc"));
模糊查询
criteria.andLike("name", "%" + key + "%").orEqualTo("letter", key);