SpringBoot整合MyBatis之xml配置
Posted 枫树湾河桥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot整合MyBatis之xml配置相关的知识,希望对你有一定的参考价值。
现在业界比较流行的数据操作层框架 MyBatis,下面就讲解下 Springboot 如何整合 MyBatis,这里使用的是xml配置SQL而不是用注解。主要是 SQL 和业务代码应该隔离,方便和 DBA 校对 SQL。
我的项目结构
src/
+- main/
+- java/
+- com.springboot.mybatis
+- pojo
+- mapper
+- controller
+- service
|- MainApplicion.java
+- resources/
+- mybatis
+- mapper
|-mapper.xml
|- mybatis-config.xml
|- application.properties
pom.xml
添加必要的依赖
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
<mybatis-spring-boot.version>1.3.0</mybatis-spring-boot.version>
<mysql-connector.version>5.1.39</mysql-connector.version>
</properties>
<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>${mybatis-spring-boot.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql-connector.version}</version>
</dependency>
</dependencies>
application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/test_spring_boot?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#mybatis
mybatis.configLocation=classpath:mybatis/mybatis-config.xml
mybatis.mapperLocations=classpath:mybatis/mapper/*.xml
注意根据自己的实现项目目录进行相应的修改。
mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
</typeAliases>
</configuration>
mapper
通过@MapperScan注解进行dao文件的扫描,此时mapper接口上不需要再加@Mapper注解,如下
// MyBatis 支持
@MapperScan("com.springboot.mybatis.mapper")
@SpringBootApplication
public class MainApplicion {
public static void main(String[] args) throws Exception {
SpringApplication.run(MainApplicion.class, args);
}
}
与SpringMVC整合MyBatis的区别
SpringMVC是通过xml进行配置,通过配置DataSource、SqlSessionFactoryBean、MapperScannerConfigurer来完成MyBatis的整合。
而SpringBoot是通过application.properties配置数据源、mapper文件位置和@MapperScan注解来配置扫描的apper路径,从而实现MyBatis的整合。
往常我们使用springboot集成web,redis等依赖之所以不需要指定版本号,是因为我们引入的Maven Parent 中指定了SpringBoot的依赖,SpringBoot官方依赖Pom文件中已经指定了它自己集成的第三方依赖的版本号,对于Mybatis,Spring官方并没有提供自己的starter,而是mybatis为spring提供的starter依赖,所以必须跟正常的maven依赖一样,要加版本号。
以上是关于SpringBoot整合MyBatis之xml配置的主要内容,如果未能解决你的问题,请参考以下文章
springboot + mybatis + mycat整合
解决SpringBoot整合Mybatis扫描不到dao层xml文件的问题