spring对junit的支持

引入spring和junit4的依赖

复制代码
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>6.0.4</version>
</dependency>
<!--        spring对junit支持的依赖,spring6既支持junit4也支持junit5  -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>6.0.4</version>
        </dependency>
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.13.2</version>
    <scope>test</scope>
</dependency>

2.编写测试类

复制代码
@RunWith(SpringJUnit4ClassRunner.class)
// 加载spring.xml配置文件 加载spring容器
@ContextConfiguration("classpath:spring.xml")
public class SpringJunit4Test {

    @Autowired
    private Account account;

    @Test
    public void testSpringJunit4(){
        System.out.println(account.getActno());
    }
}

spring对junit5的支持

  1. 引入依赖

    org.springframework spring-context 6.0.4 org.springframework spring-test 6.0.4 org.junit.jupiter junit-jupiter 5.9.2 test

2.编写测试类

复制代码
@ExtendWith(SpringExtension.class)
@ContextConfiguration("classpath:spring.xml")
public class SpringJunit5Test {

    @Autowired
    private Account account;

    @org.junit.jupiter.api.Test
    public void testSpringJunit5(){
        System.out.println(account.getActno());
    }
}

spring集成mybatis

  1. 引入依赖

    org.springframework spring-context 6.0.21 org.springframework spring-jdbc 7.0.2 mysql mysql-connector-java 8.0.30 org.mybatis mybatis 3.5.19 org.mybatis mybatis-spring 4.0.0 com.alibaba druid 1.1.20 junit junit 4.13.2 test
  2. 创建三层架构需要的包:mapper、pojo、service

  3. 编写pojo类

    public class Account {
    private String actno;
    private double balance;

    复制代码
     @Override
     public String toString() {
         return "Account{" +
                 "actno='" + actno + '\'' +
                 ", balance=" + balance +
                 '}';
     }
    
     public Account() {
     }
    
     public Account(String actno, double balance) {
         this.actno = actno;
         this.balance = balance;
     }
    
     public String getActno() {
         return actno;
     }
    
     public void setActno(String actno) {
         this.actno = actno;
     }
    
     public double getBalance() {
         return balance;
     }
    
     public void setBalance(double balance) {
         this.balance = balance;
     }

    }

  4. 编写mapper接口

    // 该接口不需要写实现类,mybatis会根据动态代理机制自动生成实现类
    public interface AccountMapper {
    int update(Account getAccount);
    int insert(Account getAccount);
    int delete(String actno);
    Account getAccount(String actno);
    List getAllAccount();
    }

  5. 编写mapper配置文件

    insert into t_act(actno, balance) values(#{actno}, #{balance})
    复制代码
     <delete id="delete" >
         delete
         from t_act
         where actno = #{actno}
     </delete>
    
     <update id="update" parameterType="com.ali.pojo.Account">
         update t_act
         set name  = #{name},
             money = #{money}
         where actno = #{actno}
     </update>
    
     <select id="getAccount"  resultType="com.ali.pojo.Account">
         select actno, balance
         from t_act
         where actno = #{actno}
     </select>
    
     <select id="getAllAccount" resultType="com.ali.pojo.Account">
         select actno, balance
         from t_act
     </select>
  6. 编写service和service的实现类

    public interface AccountService {
    int addAccount(Account account);
    int updateAccount(Account account);
    int deleteAccount(String actno);
    Account getAccount(String actno);
    List getAllAccount();
    }

    @Service("accountService")
    public class AccountServiceImpl implements com.ali.service.AccountService {

    复制代码
     @Autowired
     private AccountMapper accountMapper;
    
     @Override
     public int addAccount(Account account) {
         return accountMapper.insert(account);
     }
    
     @Override
     public int updateAccount(Account account) {
         return accountMapper.update(account);
     }
    
     @Override
     public int deleteAccount(String actno) {
         return accountMapper.delete(actno);
     }
    
     @Override
     public Account getAccount(String actno) {
         return accountMapper.getAccount(actno);
     }
    
     @Override
     public List<Account> getAllAccount() {
         return accountMapper.getAllAccount();
     }

    }

  7. 编写jdbc.properties配置文件

    jdbc.driver=com.mysql.cj.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/spring6?useSSL=false&serverTimezone=UTC
    jdbc.username=root
    jdbc.password=yourpassword

  8. 编写mybaits-config.xml配置文件

    复制代码
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>
  9. 编写spring.xml配置文件

相关推荐
fīɡЙtīиɡ ℡6 小时前
内存泄漏产生的原因
java·spring·servlet
xixingzhe27 小时前
spring ai简单使用skills
数据库·人工智能·spring
乐观的Terry11 小时前
8、发布系统-完整流水线的核心
java·spring boot·spring·spring cloud
Y38153266215 小时前
3 种 SERP 数据处理方案对比:流式 / 批处理 / 缓存
java·spring·缓存
Sayuanni%316 小时前
Spring IOC
java·spring·rpc
dkbnull16 小时前
Spring Boot依赖注入方式对比详解
spring boot·spring
正儿八经的少年16 小时前
Spring 事务保证数据一致性
java·数据库·spring
宸津-代码粉碎机17 小时前
SQL 深度精讲|IN 与 NOT IN 用法、底层原理、NULL 致命坑、性能优化(实战干货)
大数据·数据库·sql·spring·搜索引擎·性能优化
叶总没有会17 小时前
3.2 构建AI智能体项目扩展知识
java·数据库·人工智能·spring·ai
我是唐青枫1 天前
Java Spring Security 实战详解:从登录认证到 JWT 权限控制
java·spring