SpringBoot+Mybatis基于XML配置文件的Junit测试

最近突然想写一个简单测试,发现现在网上大部分都是基于注解,而我个人比较喜欢基于xml的方式,所以在此放一个供各位爱学习的网友们观看。

一、 新建一个project



在这里添加上这些,就不需要在pom里面再天啊及依赖了
弄完这些以后就可以新建一张表,在这里我给大家说一个在IDEA就可以连接数据库并新建表,以及插入数据:
在IDEA界面的右侧Database,点开以后点击+
在点击完之后会出来一个列表,选到Data Source ->Mysql就可以了,因为我用的是MySQL,如果你们相用别的,也可以选择添加别的。

这是添加完成之后的界面,以及建表,和在Navicat里面写的一样,执行的话,就点击绿色的执行。在这里插入图片描述
接下建完表之后数据的话,可以插几条,因为我先写的是查询,如果没数据查询之后是没有很明显的区别。

二、目录结构

给大家看下我的包结构,大家可以先建包建表,然后再去写里面的代码,个人习惯。
在这里插入图片描述

三、步骤

实体类(Model)

package com.gaoge.model;

public class Person {
    private int id;
    private String name;
    private String teacher;

    public Person() {
    }

    public Person(int id, String name, String teacher) {
        this.id = id;
        this.name = name;
        this.teacher = teacher;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getTeacher() {
        return teacher;
    }

    public void setTeacher(String teacher) {
        this.teacher = teacher;
    }

    @Override
    public String toString() {
        return "Person{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", teacher='" + teacher + '\'' +
                '}';
    }
}

建完Model之后就可以建Mapper
接口(Mapper)

package com.gaoge.mapper;

import com.gaoge.model.Person;
import org.apache.ibatis.annotations.Mapper;

import java.util.ArrayList;

@Mapper
public interface PersonMapper {
    void insert(Person person);
    void delete(int id);
    void update(Person person);
    ArrayList<Person> findAll();
    Person findId(int id);
}

因为我是做增删改查和单个查询,所以写了五个方法,你们可以根据自己的需要来写。
因为我只是测试Junit,所以就没有新建Controller、Service、Impl。
启动类(Application)
@Mapper注解用来扫描mapper

package com.gaoge;

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

@SpringBootApplication
@MapperScan("com.gaoge.mapper")
public class DemoApplication {

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

}

④ 接下来是Mapper.xml
Mapper.xml

<?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.gaoge.mapper.PersonMapper">
	<!--查询全部-->
    <select id="findAll" resultType="person">
        select * from person
    </select>
	<!--查询单个-->
    <select id="findId" resultType="person">
        select * from person where id=#{id}
    </select>

    <!--新增-->
    <insert id="insert">
        insert into person values(#{id},#{name},#{teacher})
    </insert>

    <!--删除-->
    <delete id="delete">
        delete from person where id=#{id}
    </delete>

    <!--修改-->
    <update id="update">
        update person set name=#{name},teacher=#{teacher} where id=#{id}
    </update>
</mapper>

⑤ 然后是配置文件
在这里有必要说下:
?serverTimezone=GMT%2B8是我再写的过程中报了一个错误,翻译之后说是我时区不对,才加上的这个
application.properties

# mysql
spring.datasource.url=jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2B8
useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

# mybatis
# 对应实体类的包名
mybatis.typeAliasesPackage=com.gaoge.model
# mapper.xml文件所在位置,我放到了resources下面
mybatis.mapperLocations=classpath:/mapper/**Mapper.xml

⑥test包下测试启动类
我定义了五个方法,所以我就把它们都测试了一遍

package com.gaoge;

import com.gaoge.mapper.PersonMapper;
import com.gaoge.model.Person;
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.ArrayList;

@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {

    @Autowired
    private PersonMapper personMapper;

    @Test
    public void select() {
        ArrayList<Person> all = personMapper.findAll();
        for (Person p : all
        ) {
            System.out.println(p);
        }
    }
    @Test
    public void insert(){
        Person p = new Person();
        p.setId(1);
        p.setName("李老师");
        p.setTeacher("语文");
        personMapper.insert(p);
    }

    @Test
    public void delete(){
        personMapper.delete(1);
    }

    @Test
    public void update(){
        Person p = new Person();
        p.setTeacher("英语");
        p.setName("王五");
        p.setId(1);
        personMapper.update(p);
    }

}

最后附上一张查询的结果图
在这里插入图片描述
后续会继续发出加上Controller、Service、Impl与前端页面的交互的增删改查以及JSP页面。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
你好!对于Spring Boot整合MyBatisJUnit的问题,可以按照以下步骤进行操作: 1. 首先,确保你已经添加了相关的依赖。在`pom.xml`文件中添加以下依赖: ```xml <dependencies> <!-- Spring Boot Starter --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- MyBatis Starter --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> </dependency> <!-- JUnit 5 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> ``` 2. 创建数据库配置。在`application.properties`文件中添加数据库连接信息: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/db_name spring.datasource.username=db_username spring.datasource.password=db_password spring.datasource.driver-class-name=com.mysql.jdbc.Driver # MyBatis配置 mybatis.mapper-locations=classpath:mapper/*.xml mybatis.type-aliases-package=com.example.domain ``` 3. 创建MyBatis映射配置文件。在`resources`目录下创建`mapper`目录,并编写对应的XML文件,例如`UserMapper.xml`: ```xml <?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.example.mapper.UserMapper"> <!-- SQL语句定义 --> </mapper> ``` 4. 创建实体类和Mapper接口。在`com.example.domain`包下创建实体类和对应的Mapper接口,例如`User.java`和`UserMapper.java`: ```java // User.java public class User { private Long id; private String name; // 省略getter和setter } // UserMapper.java @Mapper public interface UserMapper { User findById(Long id); // 其他方法定义 } ``` 5. 编写Service层和Controller层代码。按照你的业务需求编写对应的Service和Controller代码。 6. 编写JUnit测试代码。在`src/test/java`目录下创建测试类,例如`UserMapperTest.java`: ```java @SpringBootTest @RunWith(SpringRunner.class) public class UserMapperTest { @Autowired private UserMapper userMapper; @Test public void testFindById() { Long id = 1L; User user = userMapper.findById(id); Assert.assertNotNull(user); System.out.println(user.getName()); } } ``` 以上就是简单的Spring Boot整合MyBatisJUnit的步骤。根据你的具体需求,可以适当调整代码和配置。希望能对你有所帮助!如果还有其他问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值