码迷,mamicode.com
首页 > 移动开发 > 详细

mybatis的通用mapper小结

时间:2019-12-10 17:07:53      阅读:105      评论:0      收藏:0      [点我收藏+]

标签:mapper   ice   public   als   add   完成   findall   定义   criteria   

import tk.mybatis.mapper.entity.Example; //此包是tk下的
1.定义一个dao层接口不需要任何方法 需要继承Mapper<类型>
技术图片

 

 2.在service中注入dao

import com.alibaba.dubbo.config.annotation.Service;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;import org.springframework.beans.factory.annotatio n.Autowired;
import tk.mybatis.mapper.entity.Example;

import java.util.List;
import java.util.Map;

/**
 * 实现类
 * BandService类  在接口包下
 * @date 2019/12/9 9:14
 */
@Service //注意导入的是dubbo的包
public class BrandServiceImpl implements BrandService {

    @Autowired
    private BrandMapper brandMapper; //依赖注入

    @Override//查询所有
    public List<Brand> findAll() {
        return brandMapper.selectAll();
    }

    @Override //分页查询品牌   page:页码  size:每页记录数
    public PageResult<Brand> findPage(int page, int size) {
        PageHelper.startPage(page,size);//分页 需要添加在查询的结果的上面
        Page<Brand> pageResult=(Page<Brand>) brandMapper.selectAll();
        return new PageResult<>(pageResult.getTotal(),pageResult.getResult());
    }

    @Override//条件查询
    public List<Brand> findList(Map<String, Object> searchMap) {
        Example example = createExample(searchMap);//把方法提取出来了
        return brandMapper.selectByExample(example);
    }

    @Override//品牌条件+分页查询
    public PageResult<Brand> findPage(Map<String, Object> searchMap, int page, int size) {
        PageHelper.startPage(page,size);
        Example example = createExample(searchMap);
        Page<Brand> brands= (Page<Brand>) brandMapper.selectByExample(example);
        return new PageResult<>(brands.getTotal(),brands.getResult());
    }

    @Override  //根据id查询品牌
    public Brand findById(Integer id) {
       return brandMapper.selectByPrimaryKey(id);

    }

    @Override //插入数据
    public void add(Brand brand) {
        brandMapper.insert(brand);
    }

    @Override //更新 数据
    public void update(Brand brand) {
     brandMapper.updateByPrimaryKeySelective(brand);
    }

    @Override //删除
    public void delete(Integer id) {
        brandMapper.deleteByPrimaryKey(id);
    }


    //把方法提取出来了(创建一个example对象)
    private Example createExample(Map<String,Object> searchMap){
        Example example=new Example(Brand.class);
        // example是Mybatis数据层框架中的一个工具,可以帮我们完成sql语句中where条件句的书写,
        // 相当于where后面的部分,我们可以根据不同的条件来查询和操作数据库,简化书写sql的过程。
        Example.Criteria criteria = example.createCriteria();
        if (searchMap!=null){
            if (searchMap.get("name")!=null&&!"".equals(searchMap.get("name"))){
                criteria.andLike("name","%"+(String)searchMap.get("name")+"%");//品牌名字的模糊查询
            }
            if(searchMap.get("letter")!=null&&!"".equals(searchMap.get("letter"))){//letter品牌的首字母
                criteria.andEqualTo("letter",(String)searchMap.get("letter"));//品牌首字母精确查询
            }
        }
        return example;
    }
}

 

 

mybatis的通用mapper小结

标签:mapper   ice   public   als   add   完成   findall   定义   criteria   

原文地址:https://www.cnblogs.com/july7/p/12017376.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!