Mybatis中间件之tkmybatis

快速实现单表逻辑

Posted by WJ on August 29, 2019

快速构建业务sql 提高开发效率 首先需要引入tk.mybatis包

jar包

import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper;

public interface MyMapper<T> extends Mapper<T>, MySqlMapper<T> {
}

Bean头信息要标注出对应库的表名

@Data
@Table(name = "user")
public class User  implements Serializable {
}
自己编写的MyMapper接口继承tk包下的Mapper和MysqlMapper

tkmybatis工具是一个方便开发人员 ,提高开发效率的插件:

  优点:不需要手动写sql,通过通用mapper的方式来通过参数来编辑sql逻辑;
  缺点:只接受单标操作,不接受复杂的多表关联查询的操作;

一般根据主键的操作就不多说了, 正常的insert,delete,update,select均提供默认的ById实现

说一下where后条件使用的两种实现方式: Example和Weekend


代码如下:


PageHelper.startPage(req.getPageNo(),req.getPageSize());

User user=new User();
//Example 实现
Example example=newExample(User.class);
Example.Criteriacriteria=example.createCriteria();
//添加like条件(自编sql)
criteria.andCondition("name like'%"+user.getName()+"%'"); 
//添加like条件(使用方法)
criteria.andLike("name",user.getName);
//同上(添加等值条件)
criteria.andEqualTo("state",user.getState());
//添加区间条件
criteria.andCondition("create_time between'"+req.getStartTime()+"'and'"+req.getEndTime()+"'");

//Weekend实现 条件同上
Weekend<User>weekend=newWeekend<>(User.class);
WeekendCriteria<Campaign,Object> keywordCriteria=weekend.weekendCriteria();
keywordCriteria.andLike(User::getName,campaign.getName());
keywordCriteria.andEqualTo(User::getState,campaign.getState());
keywordCriteria.andBetween(User::getCreateTime,req.getStartTime(),req.getEndTime());
returnnewCampaignListResp(userMapper.selectByExample(weekend));

通过上面的代码可以看出两种形式的区别: 两种方式效果一样,我只说一下Weekend实现方式的好处在哪里: Weekend 实现的好处在于不用将真实的数据库字段暴露在外面,而是交给映射Bean去转换处理 这样对于数据库字段的变更我们只需要维护映射Bean就OK了!

##注意: Weekend支持java8新语法可以使用::直接引用,但只有高一些的版本支持,3.5+从哪个版本开始支持的暂不知


打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,一毛也是爱

打开支付宝扫一扫,即可进行扫码打赏哦