spring boot整合mybatis

Posted 一响贪欢

tags:

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

spring boot本来可以使用jpa进行数据库操作,但是考虑到jpa的资料比较少,学习成本比较大,不是所有的人都可以十分了解,因此考虑采用mybatis来进行数据库操作。

1、新建maven项目,在pom中添加相关依赖。

<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>
  <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-parent</artifactId>
      <version>1.5.7.RELEASE</version>
  </parent>
  <artifactId>domain</artifactId>
  
  <dependencies>
        <!-- 测试包 -->
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-test</artifactId>
          <scope>test</scope>
      </dependency>
        <!-- druid数据源 -->
      <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
    </dependency>
        <!-- oracle驱动 -->
    <dependency>
        <groupId>com.jslsolucoes</groupId>
        <artifactId>ojdbc6</artifactId>
    </dependency>
        <!-- mybatis整合包 -->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
    </dependency>
  </dependencies>
  
  <build/>
</project>

注意,引入org.mybatis.spring.boot后不再引入spring boot的jdbc包,因为前者里面已经包含了。

同时MyBatis-Spring-Boot-Starter会提供如下:

  • 自动检测现有的DataSource。
  • 将创建并注册SqlSessionFactory的实例,该实例使用SqlSessionFactoryBean将DataSource作为输入参数传递。
  • 将创建并注册从SqlSessionFactory中获取的SqlSessionTemplate的实例。
  • 自动扫描Mappers,将它们链接到SqlSessionTemplate并将其注册到spring上下文,以便注册到需要的bean中。

即使用该依赖后,只需要定义一个DataSource(application.properteis中可自动配置),会自动创建使用该DataSource的SqlSessionFactory和SqlSessionTemplate,会自动扫描Mappers,链接到SqlSessionTempate,并注册到spring上下文。

2、创建配置文件application.properteis

#mybatis
mybatis.type-aliases-package=com.btw.dao
#datasource
spring.datasource.driverClassName=oracle.jdbc.driver.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@192.168.**.***:1521:f***
spring.datasource.username=f****
spring.datasource.password=*****

上面只是一个最简单的dataSource配置,还可以增加其他诸如最大连接数最小连接数之类的参数。

3、在application.properties中指定的包位置"com.btw.dao",创建mybatis的接口

package com.btw.dao;

import org.apache.ibatis.annotations.Select;

public interface TGgCzyMapper {

    @Select("select count(*) from t_xt_czy")
    int selectAll();
}

4、创建application类。

package com.btw;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;

@EnableAutoConfiguration
@MapperScan("com.btw.dao")
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

到这一步正式配置完成,可以正常的对数据库进行操作。

5、测试类

package com.btw.dto;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import com.btw.Application;
import com.btw.dao.TGgCzyMapper;

@RunWith(SpringRunner.class)
@SpringBootTest(classes=Application.class)
public class TGgCzyTest {

    @Autowired
    private TGgCzyMapper mapper;
    
    @Test
    public void test() {
        System.out.println("-----------------------------------");
        int i = mapper.selectAll();
        System.out.println("i=" + i);
        System.out.println("-----------------------------------");
    }

}

 

以上是关于spring boot整合mybatis的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot:整合MyBatis框架

Spring Boot2 系列教程 | SpringBoot 整合 Mybatis

spring boot整合Mybatis

spring boot 与 Mybatis整合(*)

Spring Boot-整合MyBatis

Spring boot 学习笔记 - 整合MyBatis