注意:一旦引入了通用Mapper的启动器,会覆盖Mybatis官方启动器的功能,因此需要移除对官方Mybatis启动器的依赖。

无需任何配置就可以使用了。如果有特殊需要,可以到通用mapper官网查看:https://github.com/abel533/Mapper/wiki/3.config

通用mapper不需要dao层的xml文件,只需要dao层的接口继承Mapper接口

总结使用步骤

整合通用mapper的使用:

第一步:  如果使用通用mapper就需要把mybatis的依赖和配置全部去掉 包括jar、xml、引导类上的mapperScan

第二步:添加通用mapper的启动器

<dependency>

<groupId>tk.mybatis</groupId>

<artifactId>mapper-spring-boot-starter</artifactId>

<version>2.1.5</version>

</dependency>

第三步:修改pojo实体类

在类名上添加一个注解@Table(name="表名") 用于表和实体类的映射关系

在注解上添加一个@Id  表名是主键

第四步:修改dao,让Dao的接口继承一个父接口Mapper<T> ,默认就有了CRUD方法

第五步:修改Service实现类中dao的方法 userDao.selectByPrimaryKey(id)

一.和整合mybatis的区别

  1. 不需要编写xml文件,
  2. 更改引导类上的@MapperScan注解,改成通用mapper的
  3. 不需要在application.yml文件上对 通用mapper 进行配置
  4. dao层的接口需要实现Mapper<对应的实体类>接口
  5. 实体类需要使用注解告诉通用mapper谁是主键,该实体类对应的表是谁

二.通用mapper的使用

1.    导入启动器(坐标)

<!-- 通用mapper -->

<dependency>

<groupId>tk.mybatis</groupId>

<artifactId>mapper-spring-boot-starter</artifactId>

<version>2.1.5</version>

</dependency>

将通用mapper的坐标替换成mybatis的

完整坐标:

<dependencies>
        <!--通过项目模板,已经自动配置上了springmvc启动器,lombok启动器和test启动器-->
        <!--项目模板自动配置 开始-->
       
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

<dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--项目模板自动配置 结束-->

<!--配置springboot整合mybatis 开始-->
        <!--配置mybatis 开始-->
<!--        <dependency>
           
<groupId>org.mybatis.spring.boot</groupId>
           
<artifactId>mybatis-spring-boot-starter</artifactId>
           
<version>2.0.1</version>
        </dependency>-->
        <!-- 通用mapper -->
       
<dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <version>2.1.5</version>
        </dependency>
        <!--配置通用mapper 结束-->
        <!--配置jdbc 开始-->
            <!--spring中的jdbc连接和事务是配置中的重要一环,在SpringBoot中该如何处理呢?
            我们只要找到SpringBoot提供的启动器即可:
             -->
       
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <!--配置jdbc 结束-->
        <!--配置mysql 开始-->
       
<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
        <!--配置mysql 结束-->
        <!--配置Druid连接池 开始-->
       
<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.6</version>
        </dependency>
        <!--配置Druid连接池 结束-->
        <!--配置springboot整合mybatis 结束-->

</dependencies>

2.   
在引导类上添加注解@MapperScan

注意导的包的路径

 

 

3.   
编辑实体类

package com.ahd.pojo;

  import lombok.Data;
import tk.mybatis.mapper.annotation.KeySql; import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date; @Data   //lombok的注解,在工程编译时自动为实体类添加上get,set,...方法
@Table(name="tb_user"//告诉通用`mapper对应的数据库表的名字
public class User {
    // id
   
@Id //告诉通用mapper 谁是主键
   
@KeySql(useGeneratedKeys = true) //开启自增主键回显功能
   
private Long id;
    // 用户名
   
private String userName;
    // 密码
   
private String password;
    // 姓名
   
private String name;
    // 年龄
   
private Integer age;
    // 性别,1男性,2女性
   
private Integer sex;
    // 出生日期
   
private Date birthday;
    // 创建时间
   
private Date created;
    // 更新时间
   
private Date updated;
    // 备注
   
private String note;
}

4.    application.yml配置文件

spring:
  datasource:
    type:
com.alibaba.druid.pool.DruidDataSource
    username: root
    url: jdbc:mysql:///saas-export-96
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver
#mybatis:
#  configuration:
#    map-underscore-to-camel-case: true
#  type-aliases-package: com.ahd.pojo
#  mapper-locations: /mapper/**

5.    编写dao层接口

package com.ahd.dao;

  import com.ahd.pojo.User;
import tk.mybatis.mapper.common.Mapper; public interface UserDao extends Mapper<User>{//添加泛型,告知通用Mapper实体类是谁
}

6.    说明

自己编写的dao层继承Mapper接口,UserDao会继承我们开发所需的大部分方法,几乎不需要自己动手编写sql语句了

通用mapper会默认自动将数据库表字段和实体类中的驼峰标识的属性进行转换,不需要像mabatis那样配置

7.    运行结果(使用谷歌json数据显示插件显示)

SpringBoot_02通用mapper的更多相关文章

  1. 【SSM 8】spring集成Mybatis通用Mapper

    上篇博客中介绍了关于Mybatis底层封装的思路问题,那么这篇博客,就介绍一下怎么引入通用的mapper插件. 备注:本项目通过maven管理 关键版本说明: spring:4.1.3.RELEASE ...

  2. 在Spring4中使用通用Mapper

    在Spring4中使用通用Mapper http://my.oschina.net/flags/blog/355281#OSC_h2_2 目录[-] 在Spring4中使用通用Mapper 一.在Sp ...

  3. Spring Boot MyBatis 通用Mapper插件集成

    Mybatis在使用过程中需要三个东西,每张表对应一个XXMapper.java接口文件,每张表对应一个XXMapper.xml文件,每张表对应一个Entity的Java文件.   其中XXMappe ...

  4. 如何使用通用Mapper

    集成方法请看上面的文档,集成后,可以继续阅读本页文档. 1. 继承通用的Mapper<T>,必须指定泛型<T> 例如下面的例子: public interface UserIn ...

  5. 通用mapper的使用

    通用mapper的使用 导入依赖 <dependency> <groupId>com.github.abel533</groupId> <artifactId ...

  6. Mybatis通用Mapper

    极其方便的使用Mybatis单表的增删改查 项目地址:http://git.oschina.net/free/Mapper 优点? 不客气的说,使用这个通用Mapper甚至能改变你对Mybatis单表 ...

  7. tk mybatis通用mapper,复杂and or条件查询

    需求:where查询,需要支持(a or b or c) and d 也就是a.b.c三个条件是或的关系,然后再与d相与. 尝试后,可以通过以下方式处理: 方式1:Weekend语法 Weekend& ...

  8. mybatis通用mapper的使用

    项目中持久层封装了两套,一个hibernate,一个是mybatis.hibernate中封装了一些通用的方法,但是mybatis中没有,基于这个需求开始使用mybatis的通用mapper.     ...

  9. 通用mapper认识和用法

    目录 0. 认识 1. 导包 2. mybatis的config文件:mybatis-mapper-config.xml 3. spring与mybatis整合配置文件:mybatis.xml 4. ...

随机推荐

  1. 从入门到精通,Java学习路线导航(附学习资源)

    原文链接:https://blog.csdn.net/qq_42453117/article/details/100655512 引言 最近也有很多人来向我"请教",他们大都是一些 ...

  2. Idea 项目jdk环境配置

    1.先配置jdk环境变量

  3. Android重写HorizontalScrollView模仿ViewPager效果

    Android提供的ViewPager类太复杂,有时候没有必要使用,所以重写一个HorizontalScrollView来实现类似的效果,也可以当做Gallery来用 思路很简单,就是重写onTouc ...

  4. Unity3D_(游戏)甜品消消乐03_游戏UI设计

    甜品消消乐01_游戏基础界面 传送门 甜品消消乐02_游戏核心算法 传送门 甜品消消乐03_游戏UI设计    传送门 (源码在文章最下面~) 实现过程 游戏界面UI 分数与时间的UI显示 有关游戏U ...

  5. 揭秘Android Studio项目目录结构

    I don't know if this is because of the Gradle Build System (I'd wager it is), but I'll tell you what ...

  6. java 多线程为何会出现无法捕获异常的现象?

    提出问题: 很多Java初学者在初学java 多线程的时候可能会看到如下代码: public class ExceptionThread implements Runnable{ @Override ...

  7. shiro所需的依赖

    <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring< ...

  8. 剑指offer32----之字形打印一颗二叉树

    题目 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推. 思路 在这里我们如果单纯的使用队列去弄的话,会很 ...

  9. 一款兼容性较强的H5播放器-Mediaelementjs

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...

  10. Serializable 和 Parcelable 的区别?

    1.在使用内存的时候,Parcelable 类比 Serializable 性能高,所以推荐使用 Parcelable 类.2.Serializable 在序列化的时候会产生大量的临时变量,从而引起频 ...