SpringBoot整合框架(JUnit、redis、mybatis)

Junit

两个注解:
@RunWith(SpringRunner.class)(新版本可以不用写)
@SpringBootTest(class= 启动类.class)

步骤:

  1. 搭建项目

  2. 引入依赖
    在这里插入图片描述

  3. 编写测试类
    1 . 先写一个service的类用来测试。一般测试的都是业务类
    service的类要添加@Service注解
    在这里插入图片描述
    2 . 编写测试类并加上测试相关注解
    在这里插入图片描述

个人理解,这里的测试其实就是
在测试类里面声明一个被测试类的对象------>写测试方法(通过对象调用被测方法)------>运行测试方法
声明对象时要加注解@Autowired
写测试方法时要加注解@Test

package com.ljm.springbootprofile;

import com.ljm.springbootprofile.server.UserServicce;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest(classes = SpringbootProfileApplication.class)
public class UserServicceTest {

//    创建一个UserServicce类的对象,用来调用类内的方法
    @Autowired //对成员变量、方法、构造函数进行自动装配工作
    private UserServicce userServicce;

    @Test
    public void TestAdd(){
        userServicce.UserAdd();
    }
}
  1. 运行测试方法
    在这里插入图片描述

Redis

前置条件是安装了redis,我安装的是Windows版本的。
安装过程参考文章:(https://zhuanlan.zhihu.com/p/472045476)

步骤:

  1. 搭建springboot项目
  2. 引入redis起步依赖
    使用快速创建的方式,IDEA会自动帮忙配好依赖在这里插入图片描述
  3. 配置redis相关属性(连接本地redis不需要)
    在resources的application.properties文件里配置
#配置redis的相关配置
spring.redis.host=localhost    //这里如果不是主机的话,就是链接redis机器的IP
spring.redis.port=6379

  1. 注入redisTemplate模板
    直接在测试类里面写一个私有的RedisTemplate的对象即可在这里插入图片描述

  2. 编写测试方法,测试
    运行之前需要先启动redis

@SpringBootTest
class SpringbootRedisApplicationTests {

//    注入redis的template模板
    @Autowired
    private RedisTemplate redisTemplate;

    @Test
    public void TestSet() {
        //存数据
       redisTemplate.boundValueOps("name").set("ljm");
    }

    @Test
   public void TestGet(){
        //取数据
        Object name = redisTemplate.boundValueOps("name").get();
        System.out.println(name);
    }
}

MyBatis

步骤:

  1. 搭建工程,创建mybatis起步依赖以及添加sql驱动
    在使用springboot iniltializr创建模块时,记得勾选这两个

  2. 编写DataSource和mybatis相关配置

#datasource
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/databaseforjava
spring.datasource.username=root
spring.datasource.password=root
#用注解开发就不需要写mybatis的配置信息了
  1. 定义表和实体类
    在mysql里先创建好数据库和表,这里是已经创建好的结果:
    在这里插入图片描述
    编写实体类:
    Java–>domain–>User
    三个成员变量+setter、getter、tostring
package domain;

public class User {
    private int id;
    private String username;
    private String password;

    public int getId() {
        return id;
    }

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

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

  1. 编写dao和mapper文件/纯注解开发
方法一:

java–>com.ljm.springbootmybatis—>mapper–>UserMapper
两个注解:
@Mapper,要在类前面加
@select(“你的MySQL查询语句”),方法前加
是一个接口,返回值是List

package com.ljm.springbootmybatis.mapper;

import com.ljm.springbootmybatis.domain.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface UserMapper {
    @Select("select * from mybatis_user")
    public List<User> findAll();
}

(写完mapper接口就可以测试了)

方法二

xml配置方法:
Java–>com.ljm.springbootmybatis—>mapper—>UserXmlMapper
接口写法和上面差不多但不用写sql语句

package com.ljm.springbootmybatis.mapper;

import com.ljm.springbootmybatis.domain.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface UserXmlMapper {

    public List<User> findAll();
}

映射文件(配置):
resources–>mapper—>UserMapper.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">

<!--namespace这里复制最后一个路径选项,作用是让这个文件和UserXmlMapper存在映射关系-->
<mapper namespace="com.ljm.springbootmybatis.mapper.UserXmlMapper">
    <select id="findAll" resultType="user">
        select * from TABLE ( mybatis_user ) where name = 'zhangsan';
    </select>

</mapper>


<!--到这里为止映射文件就写完了,
下一步是去application.properties文件里配置mybatis的相关信息-->


application.properties:


#注解开发:
#datasource
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/databaseforjava
spring.datasource.username=root
spring.datasource.password=root
#用注解开发就不需要写mybatis的配置信息了

#xml映射文件方法需要配置的信息
#mybatis

#这里需要配置mapper映射路径和user对应的别名

#classpath对应resources,*表示通配符,即xxxMapper.xml都可以映射
mybatis.mapper-locations=classpath:mapper/*Mapper.xml
#这里对应的是别名user的包,别名的相关信息可以百度
mybatis.type-aliases-package=com.ljm.springbootmybatis.domain


#config-location: #配置mybatis核心配置文件的,这里没有用上
  1. 测试
    编写测试类并运行:
package com.ljm.springbootmybatis;

import com.ljm.springbootmybatis.domain.User;
import com.ljm.springbootmybatis.mapper.UserMapper;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

@SpringBootTest
class SpringbootMyBatisApplicationTests {

	@Autowired
	private UserMapper userMapper;   //测试谁就创建谁的对象

	@Test
	void TestFindAll() {
		List<User> list = userMapper.findAll();
		System.out.println(list);
	}

}

运行结果·:
在这里插入图片描述
方法二测试:

package com.ljm.springbootmybatis;

import com.ljm.springbootmybatis.domain.User;
import com.ljm.springbootmybatis.mapper.UserMapper;
import com.ljm.springbootmybatis.mapper.UserXmlMapper;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

@SpringBootTest
class SpringbootMyBatisApplicationTests {

	@Autowired
	private UserMapper userMapper;   //测试谁就创建谁的对象

	@Autowired
	private UserXmlMapper userXmlMapper;

	@Test
	void TestFindAll() {
		List<User> list = userMapper.findAll();
		System.out.println(list);
	}

	@Test
	void TestFindAll2() {
		List<User> list2 = userXmlMapper.findAll();
		System.out.println(list2);
	}
}

运行结果:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值