zoukankan      html  css  js  c++  java
  • 第七天.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
        username: root
        password: root
    
      jpa:
        database: MySQL
        generate-ddl: true
        show-sql: true

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

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

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

    解决方法:

    1 把映射文件 放到resources 目录下 结构目录一模一样

    2.按照上述依赖配置后边的plug即可

    mapper接口:

    package com.xhn.mapper;
    
    import com.xhn.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.xhn.controller;
    
    import com.xhn.mapper.MuserMapper;
    import com.xhn.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.xhn;
    
    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.xhn;
    
    import com.xhn.mapper.MuserMapper;
    import com.xhn.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);
            }
        }
    }

    4 运行结果

     完成整合,谢谢访问

  • 相关阅读:
    LNMP编译
    数据库(二)tab补全功能,使数据库支持简体中文,日志管理,备份脚本
    MySQL数据库(一)编译安装、安装后优化操作及超户忘记数据库密码的解决方法
    awk简题
    NFS
    WCF 传递数据量大时的报错处理
    Windows服务工程创建、部署
    反射创建BLL层控制器
    php yii环境简易配置
    php 搭建mvc框架
  • 原文地址:https://www.cnblogs.com/xinghaonan/p/11801490.html
Copyright © 2011-2022 走看看