/ SpringBoot

Spring Boot Mybatis

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: com.sxlq.lianzheng.Entity

在启动类中添加下边注解,用来扫描到 mapper 文件

@MapperScan("com.sxlq.lianzheng.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>