MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
我们如何在 Spring Boot 的项目中使用 Mybatis ?
Spring Boot 项目中集成 Mybatis
首先在我们的 pom 文件中添加以下依赖库
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
我们添加了 mysql 驱动 和 mybatis 的 spring-boot-starter 可以很方便的让我们在 Spring Boot 中使用 mybatis
在 resources
文件下创建一个 mybatis 文件,用来存放 Mybatis 的配置文件,和 Mapper 文件。
配置文件名:
mybatis-config.xml
具体的一些配置项,请参考 mybatis 文档
存放 mapper 文件的文件夹:
mapper
在全局配置文件中添加 mybatis 的配置
#mybatis
mybatis:
config-locations: classpath:mybatis/mybatis-config.xml
mapper-locations: classpath:mybatis/mapper/*.xml
type-aliases-package: net.dowhile.demo.entity
在启动类中添加下边注解,用来扫描到 mapper 文件
@MapperScan("net.dowhile.dao")
配置数据源
我们这里呢使用号称最快的数据库连接池 HikariCP
我在使用 Spring Boot 2.0 m7 版本的时候,已经默认集成了 HikariCP。可以参考iss
如果你还没有集成的话,可以在 pom 中 加入以下依赖
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
</dependency>
版本你选择最新的版本就可以了。
spring:
datasource:
url: jdbc:mysql://localhost:3306/lianzheng?useUnicode=true&characterEncoding=utf-8&useSSL=false
username: root
password: ***
driver-class-name: com.mysql.jdbc.Driver
MyBatis Generator
mybatis-generator-maven-plugin mvn 仓库地址
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
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>
<!--指定数据库驱动-->
<classPathEntry location="C:\Users\yangxiaolei\.m2\repository\mysql\mysql-connector-java\5.1.44\mysql-connector-java-5.1.44.jar" />
<!--指定数据库地址,数据库用户名和密码-->
<context id="DB2Tables" targetRuntime="MyBatis3">
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/lianzheng"
userId="root"
password="xiaoLei123">
</jdbcConnection>
<javaTypeResolver >
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!--指定生产的Model类的存放位置-->
<javaModelGenerator targetPackage="com.sxlq.lianzheng.Entity" targetProject="src/main/java">
<!--是否支持子包-->
<property name="enableSubPackages" value="true" />
<!--对String 进行操作时,会添加 trim()方法进行处理-->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!--生成的映射配置文件的存放位置-->
<sqlMapGenerator targetPackage="mybatis.mapper" targetProject="src/main/resources">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!--生成的DAO类存放位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.sxlq.lianzheng.dao" targetProject="src/main/java">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<table schema="lianzheng"
tableName="leaderinformation"
domainObjectName="Leader" enableCountByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
enableUpdateByExample="false">
</table>
</context>
</generatorConfiguration>