【TestNG快板说七】TestNG增删改查数据

增删改查数据库

测试难免需要进行测试数据初始化,或者进行测试数据修复及校验,那么如何才能方便的对数据库进行增删改查呢?

主要的可以分为:

  1. 关系型数据库的操作,mysql,sqlserver
  2. 非关系型数据的操作,如redis,mongodb

关系型数据库:

  1. 直接调用JDBC进行数据操作
  2. 使用mybatis进行数据库操作

使用mybatis操作:

  • pom.xml依赖配置
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.3.0</version>
        </dependency>
  • resources中配置mybatis-config.xml
<configuration>
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>
    <!-- 注册对象的空间命名 -->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <!-- 加载数据驱动 -->
                <property name="driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
                <!-- 数据库连接地址 -->
                <property name="url" value="jdbc:sqlserver://10.***.***.18:1433;databaseName=**_Base_Join"/>
                <!-- 数据库用户、密码 -->
                <property name="username" value="admin"/>
                <property name="password" value="*****"/>
            </dataSource>
        </environment>
    </environments>

    <!-- 注册映射文件:java对象与数据库之间的xml文件路径 -->
    <mappers>
        <mapper resource="mapper/sqlmapper.xml"/>
    </mappers>
</configuration>

这里需要注意的是configuration中的配置是需要按顺序,不能随意排列,否则会报异常。
settings: 配置了mybatis数据库查询log的输出;
environments: 设置数据库的驱动、连接地址、账户、密码;
mapper: 设置java bean和数据字段的映射关系;

  • resources下mapper/sqlmapper.xml的配置
<mapper namespace="com.camelot.mdapi.sdk.shipper.dto">
    <!--获取登录接口case-->
    <resultMap type="com.camelot.mdapi.sdk.shipper.dto.ShipperInterfaceDTO" id="t_shipper_interface_dto">
        <result property="shipperCode" column="shipper_code" jdbcType="VARCHAR"/>
        <result property="shipperName" column="shipper_name" jdbcType="VARCHAR"/>
        <result property="shortName" column="short_name" jdbcType="VARCHAR"/>
        省略。。。。。
    </resultMap>

    <select id="selectAll" parameterType="java.lang.String" resultMap="t_shipper_interface_dto">
        select * from t_shipper
        where shipper_code=#{shipperCode};
    </select>

</mapper>

namespace: java bean类所在的包名;
resultMap: 设置对应的类,取个id方便后续使用,然后把bean中的每个变量和数据库中列对应起来,以便在增删改查中作为变量引用;
select: id设置为selectAll,parammeterType设置一个参数类型,引用id为t_shipper_interface_dto的map映射,参数传给#{shipperCode}

  • Java Bean定义
public class ShipperInterfaceDTO implements Serializable{

	private static final long serialVersionUID = 1276175265412595526L;
	
	private String shipperCode;
	private String shipperName;
	private String shortName;
	}
  • 调用mapper中定义的selectAll,查询数据

连接数据库,获取会话sql session

    public static SqlSession getSqlsession() throws IOException {

        //获取配置资源文件
        Reader reader = Resources.getResourceAsReader("mybatis-config.xml");

        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);
        SqlSession sqlSession=factory.openSession();
        return sqlSession;
    }
	// 测试用例运行开始前,获取session
    @BeforeTest
    void setUp() throws IOException {
        logger = Logger.getLogger(this.getClass());
        session = getSqlsession();
        client = new RunAutoTest();
    }

在Test中执行查询语句:

    @Test
    void selectAllShipperTest() throws IOException {
        SqlSession session = DataPrepareTest.getSqlsession();
        ShipperInterfaceDTO dto = session.selectOne("selectAll", "ZA01");
        logger.info(dto.toString());
    }

selectOne方法中调用mapper中配置好的查询语句id=selectAll,同时传一个参数ZA01,返回的数据会根据设置好的映射关系自动转化为ShipperInterfaceDTO

非关系型数据库:

  1. redis的操作
  2. mongoDB的操作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值