掌握后端接口开发:软件测试学习笔记中的数据库与ORM框架
发表时间: 2024-05-07 17:35
本文转自测试人社区,原文链接:jck28 - 小柒 - 后端接口开发 - 数据库与ORM框架 - 学习笔记 - 测试人社区
<dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>5.8.2</version> <scope>test</scope> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>RELEASE</version> <scope>compile</scope> </dependency><!-- mysql连接 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.28</version> </dependency> <!--mybatis坐标--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.9</version> </dependency>
package com.example.mybatisTest.entity;import lombok.Getter;import lombok.Setter;import lombok.ToString;import java.time.LocalDateTime;@Getter@Setter@ToStringpublic class TestUser { /** * 主键 */ private Integer id; /** * 用户名 */ private String userName; /** * 密码 */ private String password; /** * 邮箱 */ private String email; /** * 自动生成用例job名称 不为空时表示已经创建job */ private String autoCreateCaseJobName; /** * 执行测试job名称 不为空时表示已经创建job */ private String startTestJobName; /** * 默认Jenkins服务器 */ private Integer defaultJenkinsId; /** * 创建时间 */ private LocalDateTime createTime; /** * 更新时间 */ private LocalDateTime updateTime;}
<?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/example/mybatisTest/entity/TestUser"> <!--这里建立映射关系--> SELECT * FROM test_user </select></mapper>
数据库环境配置
映射关系配置的引入(引入映射配置文件的路径)
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <!--配置连接数据库的环境--><!-- default - 默认环境配置--> <environments default="development"> <environment id="development"><!-- transactionManager - 事务管理器--> <transactionManager type="JDBC"/><!-- dataSource - 数据库的连接池 POOLED - 表示使用mybatis的连接池; UNPOOLED - 不用mybatis的连接池,每次都用新的连接 --> <dataSource type="POOLED"><!-- 配置数据库连接属性--> <property name="driver" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://110.40.250.165:3307/turorials?characterEncoding=UTF-8&useUnicode=true&useSSL=false&serverTimezone=GMT"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> <environment id="test"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/ssm?serverTimezone=UTC"/> <property name="username" value="root"/> <property name="password" value="1111"/> </dataSource> </environment> </environments><!-- mapper映射关系引入--> <mappers> <mapper resource="TestUserMapping.xml"/> <mapper resource="TestUser2Mapping.xml"/> </mappers></configuration>
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.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(); } }}