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;
    }
}
 

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

时间: 2024-11-07 18:42:33

mybatis的通用mapper小结的相关文章

Spring Boot集成MyBatis实现通用Mapper

前言 MyBatis关于MyBatis,大部分人都很熟悉.MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录.不管是DDD(Domain Driven Design,领域驱动建模)还是分层架构的风

扩展mybatis和通用mapper,支持mysql的geometry类型字段

因项目中需要用到地理位置信息的存储.查询.计算等,经过研究决定使用mysql(5.7版本)数据库的geometry类型字段来保存地理位置坐标,使用虚拟列(Virtual Generated Column)来保存geohash值,便于查询. 需要了解geometry如何使用及优势可参看: mysql中geometry类型的简单使用 MySQL Geometry扩展在地理位置计算中的效率优势 本文主要讲解扩展mybatis和通用mapper,使其支持geometry类型字段的新增.修改.查询 首先创

教你如何开发Mybatis的通用Mapper

本文档地址: 如何开发自己的通用Mapper 博客排版不如直接在gitosc上查看,建议去上面的链接查看. 前言 自从发了通用Mapper-0.1.0版本后,我觉得对少数人来说,这可能是他们正好需要的一个工具.至少目前的通用DAO中,很少能有比这个更强大的. 但是对另一部分人来说,使用Mybatis代码生成器(我正在和一些朋友翻译这个文档,地址:MyBatis Generator)生成xml很方便,不需要使用通用Mapper. 实际上如果你无法在自己的业务中提取出通用的单表(多表实际上能实现,但

Spring Boot集成Mybatis及通用Mapper

集成Mybatis可以通过 mybatis-spring-boot-starter 实现. <!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-

mybatis使用通用mapper步骤

首先在pom.xml文件中通过maven下载通用mapper包 创建通用mapper接口且继承Mapper<T>类泛型 在mybatis配置文件中引入mapperclass 接下来便开始在通用mapper的世界中畅游了~~~~~~~~~ package com.aaa.entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; impo

Mybatis之通用mapper使用注解的方式写动态sql-小结

使用注解的方式直接在语句中拼写动态SQL语句 注意事项: @Select("<script> SELECT DISTINCT project_id FROM `project_partner` WHERE belong=1 AND project_id " + "IN " + "<foreach item='item' index='index' collection='ids' open='(' close=')' separator=

浅谈Mybatis通用Mapper使用方法_java - JAVA

文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 对单表进行增删改查是项目中不可避免的需求,Mybatis的通用Mapper插件使这些操作变得简单 添加maven依赖 在对应工程的pom.xml文件中添加 <dependency> <groupId>javax.persistence</groupId> <artifactId>persistence-api</artifactId> <version>1

Springboot集成mybatis通用Mapper与分页插件PageHelper(推荐)

插件介绍 通用 Mapper 是一个可以实现任意 MyBatis 通用方法的框架,项目提供了常规的增删改查操作以及 Example 相关的单表操作.通用 Mapper 是为了解决 MyBatis 使用中 90% 的基本操作,PageHelper则提供通用的分页查询功能,使用它们可以很方便的进行开发,可以节省开发人员大量的时间. 通用Mapper的GIT地址: https://gitee.com/free/Mapper 分页插件的GIT地址: https://github.com/pagehelp

【免费下载】全套最新 008-2通用Mapper 视频教程+教学资料+学习课件+源代码+软件开发工具

008-2通用Mapper视频教程 网盘地址: 链接:https://pan.baidu.com/s/11TVyVHgyinOntT44eM9-eg 提取码:i05y 加公众号 获取更多新教程 教程目录大纲 ./008-2通用Mapper ├── 视频-1 │?? ├── 01.通用Mapper介绍.avi │?? ├── 02.创建数据库表和实体类.avi │?? ├── 03.MyBatis整合Spring的环境.avi │?? ├── 04.集成通用Mapper.avi │?? ├── 0