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: 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>
posted @ 2018-10-09 22:41  这块显卡有点冷  阅读(249)  评论(0编辑  收藏  举报