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的主要内容,如果未能解决你的问题,请参考以下文章
mybatisSpring整合(eclipse)以及事务管理
从 Spring 集成 MyBatis 浅析 Java动态代理