zoukankan      html  css  js  c++  java
  • mybatis的通用mapper小结

    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;
        }
    }
  • 相关阅读:
    MS CRM 2011 RC中的新特性(4)——活动方面之批量编辑、自定义活动
    最近的一些有关MS CRM 2011的更新
    MS CRM 2011 RC中的新特性(6)——连接
    MS CRM 2011 RC中的新特性(7)—仪表板
    参加MS CRM2011深度培训课程——第一天
    MS CRM 2011插件调试工具
    MS CRM2011实体介绍(四)——目标管理方面的实体
    MS CRM 2011 RC中的新特性(3)——客户服务管理方面
    MS CRM 2011 RC中的新特性(8)—数据管理
    ExtAspNet 登陆
  • 原文地址:https://www.cnblogs.com/july7/p/12017376.html
Copyright © 2011-2022 走看看