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

增删改查数据库

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

主要的可以分为:

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

关系型数据库:

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

使用mybatis操作:

  • pom.xml依赖配置
        
            org.mybatis
            mybatis
            3.3.0
        
  • resources中配置mybatis-config.xml

    
        
    
    
    
        
            
            
                
                
                
                
                
                
                
            
        
    

    
    
        
    

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

  • resources下mapper/sqlmapper.xml的配置

    
    
        
        
        
        省略。。。。。
    

    


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的操作

你可能感兴趣的:(TestNG快板说)