SpringBoot集成mybatis

Posted chengwenqin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot集成mybatis相关的知识,希望对你有一定的参考价值。

本博客是建立在对mybatis和spring有一定了解的情况下讲解。springboot与mybatis集成虽说是一个比较简单的集成,但是如果忽视某些细节,可能会集成失败。一些容易忽视的地方,我会在博客中标记到。

同时,我将写一个用户的增删改查功能,代码放到github上,如果你有兴趣,可以下载我在github上的源码!

GitHub源码地址: https://github.com/chengwenqin/cnblogs/tree/248d4fa2ed8e10b9b7732e354c9f866881ee0463

1.新建一个maven工程

2.引入集成相关的依赖,配置pom.xml文件

3.创建三层结构,dao,service,controller;配置application.yml文件

4.启动测试

 

1.新建一个maven工程

  我们可以使用eclipse或者idea创建一个maven工程,。

2.引入相关依赖,配置pom.xml文件

  pom.xml配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>net.sunmonkey</groupId>
    <artifactId>springboot-mybatis-demo</artifactId>
    <version>1.0</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.8.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.39</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.29</version>
        </dependency>

    </dependencies>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <build>

        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>

        <resources>
            <!-- 注意该节点配置,maven工程默认情况下,只会打包src/main/java目录下的java文件,不会打包xml文件,
             此处需要手动配置,**/**的意思是将src/main/java目录下的所有文件都打包到jar包中-->
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/**</include>
                </includes>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/**</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>

    </build>

</project>

注意pom.xml配置文件中的<resource>节点的配置,maven工程默认只会打包src/main/java下面的java文件,会直接过虑掉src/main/java文件目录下路的xml,properties等等文件。所以此处手动配置,<include>**/**<include>表示打包的时候将src/main/java目录下面所有的文件都打包。此处配置的主要作用是将mybatis的映射器(即xml文件)文件打包到jar包中。

3.创建dao,service,controller三层结构

  创建dao,service,controller三层结构在这里不做详细介绍。具体代码可查看我在github上的工程源码。

要注意的是,由于mybatis和spring不是出自一家,因此使用springboot集成mybatis的时候,还需要额外的配置,主要是两项

  1,配置mybatis的接口文件所在路径

  2,配置mybatis的映射器(即xml文件)所在的路径

1.配置mybatis的接口文件所在的路径

  有两种方式可以选择

  1,使用 @org.apache.ibatis.annotations.Mapper 注解,将该注解写在mybatis的dao层接口上,springboot程序在启动的时候就能扫描到该接口

  2,使用 @org.mybatis.spring.annotation.MapperScan 注解,该注解将会扫描某个包(package)下面所有的接口

    如果mybatis的dao层接口在 net.sunmokey.dao.mapper 包下面

    那么@org.mybatis.spring.annotation.MapperScan的配置为 @org.mybatis.spring.annotation.MapperScan("net.sunmonkey.dao.mapper")

2.配置mybatis的映射器(即xml文件)所在的路径

  需要在application.yml文件或者application.properties文件下面配置。

  如果映射文件(即mybatis的xml文件)在 net.sunmonkey.dao.mapping 目录下

  那么yml中的配置为:

    mybatis:

       mapper-locations: classpath:net/sunmonkey/dao/mapping/*.xml

  application.yml配置如下:

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/test
    username: root
    password: root
    type: com.alibaba.druid.pool.DruidDataSource
    initialization-mode: always

mybatis:
  mapper-locations: classpath:net/sunmonkey/dao/mapping/*.xml
  type-aliases-package: net.sunmonkey.entity

logging:
  level:
    net.sunmonkey.dao.mapper: debug

4.启动应用测试

配置启动springboot-mybatis-demo应用之后,访问 http://127.0.0.1:8080/user/users查看接口是否可用

以上是关于SpringBoot集成mybatis的主要内容,如果未能解决你的问题,请参考以下文章

Spring+MybatisSpring整合Mybatis

Spring+MybatisSpring整合Mybatis

mybatisSpring整合(eclipse)以及事务管理

从 Spring 集成 MyBatis 浅析 Java动态代理

Spring+SpringMVC+MybatisSpring+SpringMVC+Mybatis实现前端到后台完整项目

001.camunda入门(springboot集成篇)