spring boot 整合mybatis及使用Junit进行测试

一. spring boot 整合mybatis

1.整合思路:

  1.1 添加依赖 mybatis

  1.2 在配置文件中配置数据源信息

  1.3 编写pojo mapper接口 mapeer映射文件

  1.4手动配置mybatis的包扫描,在主启动类添加@MapperScan

    1.5 启动springboot服务器

2.开始工程部署:

  2.1:添加依赖 mybatis

    

复制代码
<!--整合springboot与mybatis的整合-->
<dependencies>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.1</version>
        </dependency>
</dependencies>
 <!--将mapper下的mapper接口与mapper映射文件放在一个mapper包下所需要的依赖-->
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.*</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
复制代码

2.2:在配置文件中配置数据源信息   application.yml

复制代码
#DB Configation  JPA Configation
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/test
//注意如果出现了无法连接数据库问题,在tx后面添加  ?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone = GMT
    username: root
  password: root 
jpa: database: MySQL
generate-ddl: true
show-sql: true
复制代码

2.3书写pojo实体类和对应的mapper接口及映射文件

 

 如果将接口和映射文件放在一个包下,那么会遇到:

错误:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.offcn.mapper.UserMapper.getUserList

解决方案:

1:在resources目录下建立一个和mapper接口相同的目录结构,把mapper映射文件放进去

2:如果想把mapper接口和mapper映射文件放在一起

那么在pom.xml中添加如下配置

复制代码
  <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.*</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>
复制代码

 

pojo实体类

package com.wf.pojo;


public class Muser {

    private Integer id;
    private String username;
    private String password;
    private String name;
  //此处添加set,get,构造方法以及重写toString
}

 

 

mapper接口:

复制代码
package com.wf.mapper;

import com.wf.pojo.Muser;

import java.util.List;

public interface MuserMapper {
    List<Muser> getUserList();
}
复制代码

mapeer映射文件:

复制代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xhn.mapper.MuserMapper">
    <select id="getUserList" resultType="com.xhn.pojo.Muser">
    select * from user
  </select>
</mapper>
复制代码

对应的controller中书写接口方法:

复制代码
package com.wf.controller;

import com.wf.mapper.MuserMapper;
import com.wf.pojo.Muser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("/user")
public class UserController {


    @Autowired
    private MuserMapper muserMapper;


    //使用mybatis查询出所有数据
    @RequestMapping("/list1")
    public List<Muser> getUserList1(){
        return muserMapper.getUserList();
    }
}
复制代码

2.4手动配置mybatis的包扫描,在主启动类添加@MapperScan

复制代码
package com.wf;

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

//扫描mapper包下的所有mapper接口和映射文件
@MapperScan(basePackages = "com.xhn.mapper")
//添加启动类
@SpringBootApplication
public class StartApplication {
    public static void main(String[] args) {
        SpringApplication.run(StartApplication.class,args);
    }
}
复制代码

 2.5 启动springboot服务器

 二:使用Junit进行测试

使用用法:

1 添加依赖

        <!--测试junit-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

 

2 创建测试类

 

 

3 在测试类上添加注解,并注入测试对象

复制代码
package com.wf;

import com.wf.mapper.MuserMapper;
import com.wf.pojo.Muser;
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 java.util.List;

@RunWith(SpringRunner.class)
//加载主启动类
@SpringBootTest(classes = StartApplication.class)
public class AppTest {

    //依赖注入
    @Autowired
    private MuserMapper mapper;

    @Test
    public void test01(){
        //先获取所有数据
        List<Muser> userList = mapper.getUserList();
        for (Muser muser : userList) {
            System.out.println(muser);
        }
    }
}
复制代码

 


 

原文地址:https://www.cnblogs.com/wufeng6/p/11802035.html