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启动的入口哪里要添加一个扫描器进行扫描的注解,如下所所示: