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的主要内容,如果未能解决你的问题,请参考以下文章
mybatisSpring整合(eclipse)以及事务管理
从 Spring 集成 MyBatis 浅析 Java动态代理