TkMybatis
一 优势
(1)接入比较方便,常见CRUD 都已经封装完成。接入即可使用。
(2)无需再去维护xml 。不需要关注sql的使用。
(3)提升开发效率。
二 springboot集成tkMybatis步骤
1、pom引入TkMybatis的Maven依赖
2、配置对应实体类(表对应的实体PO)
[@GeneratedValue] blog.csdn.net/sswqzx/arti…
3、Mapper集成tkMybatis的Mapper接口
Mapper实现tkMybaties基本CRUD操作,InsertListmapper实现批量插入操作,所有这里使用BasicDao包装两个接口。
4、扫描Mapper接口
@MybatisRepository 自定义注解,spring启动后自动扫描mapper接口
5、数据操作
业务层通过mapper接口,使用TkMybatis提供的方法执行sql
三 TkMybatis常用方法
1、查询全部
public List<SysUser> getUserList() {
return sysUserMapper.selectAll();
}
2、按主键查询
public SysUser getUserById(Long id) {
return sysUserMapper.selectByPrimaryKey(id);
}
3、按主键修改(只更新有值的字段)
public void update(SysUser user) {
sysUserMapper.updateByPrimaryKeySelective(user);
}
4、按主键修改(更新所有字段)
public void update(SysUser user) {
sysUserMapper.updateByPrimaryKey(user);
}
5、按主键删除
public void delete(Long id) {
sysUserMapper.deleteByPrimaryKey(id);
}
6、按条件精确查询
public List<SysUser> getUserList(String loginName) {
Example example = new Example(SysUser.class);
if(StringUtils.isNotBlank(loginName)){
example.createCriteria().andEqualTo("loginName", loginName);
}
return sysUserMapper.selectByExample(example);
}
7、按条件模糊查询
public List<SysUser> getUserList(String loginName) {
Example example = new Example(SysUser.class);
if(StringUtils.isNotBlank(loginName)){
example.createCriteria().andLike("loginName", "%" + loginName + "%");
}
return sysUserMapper.selectByExample(example);
}
8、按时间段查询并排序
public List<SysUser> getUserList(String startDate, String endDate) {
Example example = new Example(SysUser.class);
Example.Criteria criteria = example.createCriteria();
if (StringUtils.isNotBlank(startDate)) {
criteria.andGreaterThanOrEqualTo("createTime", startDate);
}
if (StringUtils.isNotBlank(endDate)) {
criteria.andLessThanOrEqualTo("createTime", endDate);
}
example.setOrderByClause("create_time desc");
return sysUserMapper.selectByExample(example);
}
9、按条件修改(只更新有值的字段)
public void update(SysUser user) {
Example example = new Example(SysUser.class);
example.createCriteria().andEqualTo("loginName", user.getLoginName());
sysUserMapper.updateByExampleSelective(user, example);
}
10、按条件修改(更新所有字段)
public void update(SysUser user) {
Example example = new Example(SysUser.class);
example.createCriteria().andEqualTo("loginName", user.getLoginName());
sysUserMapper.updateByExample(user, example);
}
11、按条件删除
public void delete(String loginName) {
Example example = new Example(SysUser.class);
example.createCriteria().andEqualTo("loginName", loginName);
sysUserMapper.deleteByExample(example);
}
12、复杂条件查询
public List<SysUser> getUserList(String loginName, String password) {
Example example = new Example(SysUser.class);
Example.Criteria criteria1 = example.createCriteria();
criteria1.andEqualTo("loginName", loginName);
criteria1.andEqualTo("password", password);
Example.Criteria criteria2 = example.createCriteria();
criteria2.andEqualTo("email", loginName);
criteria2.andEqualTo("password", password);
example.or(criteria2);
return sysUserMapper.selectByExample(example);
}
SELECT * FROM sys_user WHERE ((login_name = ? AND password = ?) OR (email = ? AND password = ?))