tk.mybatis的简单使用

tkmybatis是在mybatis框架的基础上提供了很多工具

映射配置文件

tkmybatis在使用的是否配置文件基本上不用写,




    
        
        
        
        
        
        
    

一个简单的映射基本上不需要自己写任何的sql映射,只用写实体类和数据库表的映射关系,所有的sql基本上都被框架封装好了,不用自己写;

service层

@Service
public class UserService extends BaseService{

    @Autowired
    private UserMapper userMapper;

}

继承一个BaseService,

 

public abstract class BaseService, T>{
    @Autowired
    protected M mapper;
    public void setMapper(M mapper) {
        this.mapper = mapper;
    }

    public T selectOne(T entity) {
        return mapper.selectOne(entity);
    }


    public T selectById(Object id) {
        return mapper.selectByPrimaryKey(id);
    }


    public List selectList(T entity) {
        return mapper.select(entity);
    }


    public List selectListAll() {
        return mapper.selectAll();
    }


    public Long selectCount(T entity) {
        return new Long(mapper.selectCount(entity));
    }


    public void insert(T entity) {
        EntityUtils.setCreatAndUpdatInfo(entity);
        mapper.insert(entity);
    }


    public void insertSelective(T entity) {
        EntityUtils.setCreatAndUpdatInfo(entity);
        mapper.insertSelective(entity);
    }


    public void delete(T entity) {
        mapper.delete(entity);
    }


    public void deleteById(Object id) {
        mapper.deleteByPrimaryKey(id);
    }


    public void updateById(T entity) {
        EntityUtils.setUpdatedInfo(entity);
        mapper.updateByPrimaryKey(entity);
    }


    public void updateSelectiveById(T entity) {
        EntityUtils.setUpdatedInfo(entity);
        mapper.updateByPrimaryKeySelective(entity);

    }

    public List selectByExample(Object example) {
        return mapper.selectByExample(example);
    }

    public int selectCountByExample(Object example) {
        return mapper.selectCountByExample(example);
    }
}

BaseService里对所有的基本sql语句进行了封装,所有service里面基本上什么方法都不需要添加,除非自己添加的自定义方法

Example类的使用

Example的应用可谓是说对不喜欢写sql的编程人员提供了很大便利,基本上所有的单表查询,修改都可以做到,但是复杂的多表还是得自己写sql,简单说一下Example的使用

public Result getPageByEvent(Paging paging, String eventId) {
        // 这是分页
        RowBounds rowBounds = new RowBounds(paging.getPageNum(), paging.getPageSize());
        // new一个Example
        Example example = new Example(Prize.class);
        // 排序
        example.orderBy("singleCont").asc();
        // 添加条件
        Example.Criteria criteria = example.createCriteria();
        // 前面 一个参数对应实体类的 属性,后一个对应 要传的值
        criteria.andEqualTo("eventId", eventId);
        List prizes = prizeMapper.selectByExampleAndRowBounds(example, rowBounds);
        return Result.success(new PageInfo(prizes));
    }
 

Example 里封装了很多查询等方法;

有时间再继续写。。。

 

你可能感兴趣的:(tk.mybatis的简单使用)