软件测试学习笔记:深入后端接口开发与MyBatis CRUD操作

发表时间: 2024-05-07 16:50

本文转自测试人社区,原文链接:jck28 - 小柒 - 后端接口开发 - MyBatis 增删改查 - 学习笔记 - 测试人社区

一,添加配置文件TestUserMapping.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:命名空间,与sql标签的id属性共同构成唯一标识--><mapper namespace="findUser">    <!--  resultType:返回结果类型,完成自动的映射封装,value为对应封装的实体类全路径(包名+类名)-->    <select id ="findAll" resultType="com/ceshiren/entity/TestUser">  <!--这里建立映射关系-->        SELECT * FROM test_user    </select>    <select id ="findById" parameterType="int">        SELECT * FROM test_user where id=#{id}    </select><!--新增   #{}是占位符,引用实体类中的属性的值 --><!--    parameterType :指定要插入的数据类型,即实体类-->    <insert id ="insertUser" parameterType="com/ceshiren/entity/TestUser">  <!--这里建立映射关系-->        INSERT * INTO test_user(user_name,password,email,auto_create_case_job_name,start_test_job_name,create_time,update_time)        values (#{username},#{password},#{email},#{autoCreateCaseJobName},#{startTestJobName},#{createTime},#{updateTime})    </insert><!--    修改数据-->    <update id ="updatetUser" parameterType="com/ceshiren/entity/TestUser">  <!--这里建立映射关系-->        UPDATE test_user SET user_name=#{username}, password=#{password}, email=#{email} where id=395    </update>    <!--删除--><!--    parameterType 为参数类型-->    <delete id="deleteUser" parameterType="java.lang.Integer">        delete from test_user where id = #{id}    </delete></mapper>

二,编写对应的测试代码

package com.ceshiren;import com.ceshiren.entity.TestUser;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import org.junit.jupiter.api.Test;import java.io.IOException;import java.io.InputStream;import java.time.LocalDate;import java.time.LocalDateTime;import java.util.List;public class MybatisTest {    @Test    void mybatisTest(){        try {//          (1) 加载核心配置文件            InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");//          (2) 获取sqlSessionFactory工厂对象            SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);//          (3) 获取sqlSession会话对象            SqlSession sqlSession = build.openSession();//          (4) 执行sql(获取TestUserMapping文件配置的数据sql,s为 namespace + id            List<Object> selectList = sqlSession.selectList("findUser.findAll", TestUser.class);//          (5) 打印结果            selectList.forEach(System.out::println);//          (6) 释放资源            sqlSession.close();        } catch (IOException e) {            e.printStackTrace();        }    }    @Test    void insertUser() throws IOException {        InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");        SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);        SqlSession sqlSession = build.openSession();        TestUser testUser = new TestUser();        testUser.setUserName("demi");        testUser.setPassword("123456");        testUser.setEmail("1265967088@qq.com");        testUser.setCreateTime(LocalDate.now());        int insert = sqlSession.insert("user.insertUser", testUser);        System.out.println(insert);        sqlSession.commit();   //必须要加上事务提交,不然数据插入不会成功        sqlSession.close();    }    @Test    void updateUser() throws IOException {        InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");        SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);

软件测试开发免费视频教程分享 - 公众号 - 测试人社区