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进行配置,通过配置DataSourceSqlSessionFactoryBeanMapperScannerConfigurer来完成MyBatis的整合。

SpringBoot是通过application.properties配置数据源、mapper文件位置和@MapperScan注解来配置扫描的apper路径,从而实现MyBatis的整合。

 

往常我们使用springboot集成webredis等依赖之所以不需要指定版本号,是因为我们引入的Maven Parent 中指定了SpringBoot的依赖,SpringBoot官方依赖Pom文件中已经指定了它自己集成的第三方依赖的版本号,对于MybatisSpring官方并没有提供自己的starter,而是mybatisspring提供的starter依赖,所以必须跟正常的maven依赖一样,要加版本号。

以上是关于SpringBoot整合MyBatis之xml配置的主要内容,如果未能解决你的问题,请参考以下文章

springboot + mybatis + mycat整合

SpringBoot之整合MyBatis

解决SpringBoot整合Mybatis扫描不到dao层xml文件的问题

SpringBoot整合mybatis快速入门

SpringBoot整合Mybatis之Annotation

springboot之基于注解整合mybatis