SpringBoot集成MyBatis

Posted chuanqi1995

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot集成MyBatis相关的知识,希望对你有一定的参考价值。

Druid的优点

 DRUID是阿里巴巴开源平台上一个数据库连接池实现 是Java语言中最好的数据库连接池。它结合了C3P0、DBCP、PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池(据说是目前最好的连接池,不知道速度有没有BoneCP快)。Druid能够提供强大的监控和扩展功能

 

https://www.cnblogs.com/wuyun-blog/p/5679073.html

1. 集成 Druid:

创建项目:

技术图片

 技术图片

技术图片

 

Starter POM(首先导入druid)

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.1.6</version>
</dependency>

application.yml(直接复制修改即可)

spring:
  datasource:
    druid:
      url: jdbc:mysql://ip:port/dbname?useUnicode=true&characterEncoding=utf-8&useSSL=false
      username: root
      password: 123456
      initial-size: 1
      min-idle: 1
      max-active: 20
      test-on-borrow: true
      driver-class-name: com.mysql.jdbc.Driver

 

 

 

 

 

 

 

 

 

 

2. 集成 tk.mybatis

我们使用 tk.mybatis 简化 mybatis 开发,所以我们在 pom 中仅添加 tk.mybatis 的 starter pom

Starter POM

<dependency>
    <groupId>tk.mybatis</groupId>
    <artifactId>mapper-spring-boot-starter</artifactId>
    <version>1.1.5</version>
</dependency>
 
<dependency>
    <groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>

application.yml(在配置文件中添加mybatis的配置)

mybatis:
 type-aliases-package: com.suchuanqi.spring.boot.mybatis.domain   
mapper-locations: classpath:mapper/*.xml   
 

创建 MyMapper 通用接口

package com.suchuanqi.spring.boot.utils;
 
import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper;
 
/**
 * 自己的 Mapper
 * 特别注意,该接口不能被扫描到,否则会出错所以他不能够和启动springboot的那个类在 同一个包下或者是子包
 * <p>Title: MyMapper</p>
 * <p>Description: </p>
*/
public interface MyMapper<T> extends Mapper<T>, MySqlMapper<T> 
 

 

 

 

3集成 PageHelper

我们使用 PageHelper 做数据库分页插件

Starter POM

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.2.3</version>
</dependency>

 

 

 

4. MyBatis Maven Plugin 自动生成代码

我们使用 MyBatis 的 Maven 插件来生成数据库访问代码

POM

<build>
    <plugins>
        <plugin>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-maven-plugin</artifactId>
            <version>1.3.6</version>
            <configuration>
                <configurationFile>$basedir/src/main/resources/generator/generatorConfig.xml</configurationFile>
                <overwrite>true</overwrite>
                <verbose>true</verbose>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                    <version>$mysql.version</version>
                </dependency>
                <dependency>
                    <groupId>tk.mybatis</groupId>
                    <artifactId>mapper</artifactId>
                    <version>3.4.4</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>

自动生成配置

在 src/main/resources/generator/ 目录下创建 generatorConfig.xml 配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>
    <properties resource="jdbc.properties"/>

    <context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
        <property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>

        <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
            <property name="mappers" value="com.suchuanqi.spring.boot.utils.MyMapper"/>
        </plugin>

        <jdbcConnection
                driverClass="$jdbc.driverClass"
                connectionURL="$jdbc.connectionURL"
                userId="$jdbc.username"
                password="$jdbc.password"
>
        </jdbcConnection>

        <javaModelGenerator targetPackage="com.suchuanqi.spring.boot.mybatis.domain" targetProject="src/main/java"/>

        <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"/>

        <javaClientGenerator
                targetPackage="com.suchuanqi.spring.boot.mybatis.mapper"
                targetProject="src/main/java"
                type="XMLMAPPER"
/>

        <table tableName="%">
            <!-- mysql 配置 -->
           
<generatedKey column="id" sqlStatement="Mysql" identity="true"/>
        </table>
    </context>
</generatorConfiguration>
 
 

数据源配置

在 src/main/resources 目录下创建 jdbc.properties 数据源配置:

jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.connectionURL=jdbc:mysql://ip:port/dbname?useUnicode=true&characterEncoding=utf-8&useSSL=false
jdbc.username=root
jdbc.password=123456

生成代码

mvn mybatis-generator:generate

 技术图片

 

进行代码测试

在test的包下进行测试:

 技术图片

注意上图可能会报错是因为我们要在springboot启动的入口哪里要添加一个扫描器进行扫描的注解,如下所所示:

 技术图片

以上是关于SpringBoot集成MyBatis的主要内容,如果未能解决你的问题,请参考以下文章

Spring+MybatisSpring整合Mybatis

Spring+MybatisSpring整合Mybatis

mybatisSpring整合(eclipse)以及事务管理

从 Spring 集成 MyBatis 浅析 Java动态代理

Spring+SpringMVC+MybatisSpring+SpringMVC+Mybatis实现前端到后台完整项目

001.camunda入门(springboot集成篇)