代码例如以下:

mybatis配置文件:

<?

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>
<properties resource="mybatis-config/jdbc.properties" />
<typeAliases>
<typeAlias alias="SupplierInfo" type="ec.qa.autotest.ui.dao.model.SupplierInfo" />
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mybatis-sqlmap/supplier.xml" />
</mappers>
</configuration>


JDBC配置文件:

##for mysql
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://db-XXXX:3306? useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&allowMultiQueries=true
jdbc.username=qa
jdbc.password=XXXXXX

供应商数据对象类:

package ec.qa.autotest.ui.dao.model;

/**
*
* @author xin.wang
* 供应商信息
*
*/
public class SupplierInfo { private String email; private String supplier_id; private String company_name; private int logical_del; public String getEmail() {
return email;
} public void setEmail(String email) {
this.email = email;
} public String getSupplier_id() {
return supplier_id;
} public void setSupplier_id(String supplier_id) {
this.supplier_id = supplier_id;
} public String getCompany_name() {
return company_name;
} public void setCompany_name(String company_name) {
this.company_name = company_name;
} public int getLogical_del() {
return logical_del;
} public void setLogical_del(int logical_del) {
this.logical_del = logical_del;
}
}


DAO层接口

package ec.qa.autotest.ui.dao;

import java.util.List;

import ec.qa.autotest.ui.dao.model.SupplierInfo;

public interface SupplierOperationDao {

	public SupplierInfo seletSupplierInfo(String emali);

	public List<SupplierInfo> seletSupplierInfo(List<String > emalis);

	public void updateSupplierInfo(SupplierInfo info);

	public void  updateSupplierInfo(List<SupplierInfo > infos);

	public void logicDeleteSupplierInfo(String attr);

}

Mybatis 的sql mapper 文件:

<?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">
<mapper namespace="com.qa.autotest.ui.dao">
<select id="selectSupplierInfo" resultType="SupplierInfo">
select * from supplier.sup_supplier where email = #{email,jdbcType=VARCHAR} and logical_del = 0
</select> <update id="deleteSupplier">
update supplier.sup_supplier set logical_del = 1 where supplier_id =
#{supplier_id,jdbcType=VARCHAR}
</update> <update id="deleteSupplierInfo">
update supplier.sup_auth_info set logical_del = 1 where supplier_id =
#{supplier_id,jdbcType=VARCHAR}
</update> <update id="deleteSupplierInfoLog">
update supplier.sup_auth_info_log set logical_del = 1 where supplier_id =
#{supplier_id,jdbcType=VARCHAR}
</update> <update id="deleteSupplierLinkEffectiveness">
update supplier.sup_link_effectiveness set logical_del = 1 where email =
#{email,jdbcType=VARCHAR}
</update>
</mapper>

DAO实现类(注意加入pageobject标签,为用例自己主动注入此DAO实例):

package ec.qa.autotest.ui.dao.impl;

import java.util.List;

import org.apache.ibatis.session.SqlSession;

import ec.qa.autotest.ui.dao.SupplierOperationDao;
import ec.qa.autotest.ui.dao.model.SupplierInfo;
import ec.qa.autotest.ui.framework.annotation.PageObject;
import ec.qa.autotest.ui.framework.init.InitMybatisSession; /**
* @author xin.wang 供应商数据库操作
*
*/
@PageObject
public class SupplierOpertaionDaoImpl implements SupplierOperationDao { private static SqlSession session; public SupplierInfo seletSupplierInfo(String emali) {
SupplierInfo si = null;
session = InitMybatisSession.getSessionFactory().openSession();
try {
si = session.selectOne("com.qa.autotest.ui.dao.selectSupplierInfo", emali);
session.commit();
} catch (Exception e) {
} finally {
session.close();
}
return si;
} public List<SupplierInfo> seletSupplierInfo(List<String> emalis) {
// TODO Auto-generated method stub
return null;
} public void updateSupplierInfo(SupplierInfo info) {
// TODO Auto-generated method stub } public void updateSupplierInfo(List<SupplierInfo> infos) {
// TODO Auto-generated method stub } public void logicDeleteSupplierInfo(String email) {
SupplierInfo si = null;
session = InitMybatisSession.getSessionFactory().openSession(false);
try {
si = session.selectOne("com.qa.autotest.ui.dao.selectSupplierInfo", email);
session.update("com.qa.autotest.ui.dao.deleteSupplier", si.getSupplier_id());
session.update("com.qa.autotest.ui.dao.deleteSupplierInfo", si.getSupplier_id());
session.update("com.qa.autotest.ui.dao.deleteSupplierInfoLog", si.getSupplier_id());
session.update("com.qa.autotest.ui.dao.deleteSupplierLinkEffectiveness", si.getEmail());
session.commit(true);
} catch (Exception e) {
session.rollback();
e.printStackTrace();
} finally {
session.close();
}
}
}

測试用比例如以下:

package ec.qa.autotest.ui.admin.portal.testcases;

import org.testng.annotations.Test;
import ec.qa.autotest.ui.dao.impl.SupplierOpertaionDaoImpl;
import ec.qa.autotest.ui.framework.annotation.AutoInject;
import ec.qa.autotest.ui.testbase.AdminPortalTestBase; /**
*
* @auther xin.wang
*依据邮箱名逻辑删除SUPPLIER信息
*/
//@Listeners({ TestngRetryListener.class })
public class LoginAdminPortal extends AdminPortalTestBase{ @AutoInject
private SupplierOpertaionDaoImpl sd; @Test(invocationCount = 1)
public void loginAdminPortal() throws Exception{
sd.logicDeleteSupplierInfo("123456@qq.com");
}
}

自己主动化測试使用mybatis更新数据库信息实例的更多相关文章

  1. Selenium2 Python 自己主动化測试实战学习笔记(五)

    7.1 自己主动化測试用例 无论是功能測试.性能測试和自己主动化測试时都须要编写測试用例,測试用例的好坏能准确的体现了測试人员的经验.能力以及对项目的深度理解. 7.1.1 手工測试用例与自己主动化測 ...

  2. Mock+Proxy在SDK项目的自己主动化測试实战

    项目背景 广告SDK项目是为应用程序APP开发者提供移动广告平台接入的API程序集合,其形态就是一个植入宿主APP的jar包.提供的功能主要有以下几点: - 为APP请求广告内容 - 用户行为打点 - ...

  3. 【金阳光測试】大话Android自己主动化測试--Android自己主动化系列(1)--金阳光于2013年4月份

    Android自己主动化測试框架和工具在四年多的发展日趋成熟. 从五年前的第一代自己主动化架构演进到眼下第四代(本系列讲座第7篇后将具体剖析第三代和第四代自己主动化框架)从曾经最早谷歌推崇的monke ...

  4. Android自己主动化測试解决方式

    如今,已经有大量的Android自己主动化測试架构或工具可供我们使用,当中包含:Activity Instrumentation, MonkeyRunner, Robotium, 以及Robolect ...

  5. Android自己主动化測试之Monkeyrunner用法及实例

    眼下android SDK里自带的现成的測试工具有monkey 和 monkeyrunner两个.大家别看这俩兄弟名字相像,但事实上是完全然全不同的两个工具,应用在不同的測试领域.总的来说,monke ...

  6. MAC中在eclipse luna上搭建移动平台自己主动化測试框架(UIAutomator/Appium/Robotium/MonkeyRunner)关键点记录

    这几天由于原来在用的hp laptop的电池坏掉了,机器一不小心就断电.所以仅仅能花时间在自己的mackbook pro上又一次搭建整套环境.大家都知道搭建好开发环境是个非常琐碎须要耐心的事情,特别是 ...

  7. 带有机器人框架的.NET自己主动化測试

    Clayton Neal在软件測试和质量保证方面有超过13年的经验,当中有八年的Windows, web,和移动应用程序的測试自己主动化经验.他在測试领域的全部等级都工作过.近期他在Bloomberg ...

  8. Android Monkey自己主动化測试

    前言 假设你做Android开发,还没有使用过Monkey进行測试,那么今天看到这篇文章,希望能解决你Android測试中的一些问题.起码能帮你省点測试的时间而且发现很多其它的问题. Monkey简单 ...

  9. iOS自己主动化測试的那些干货

    前言 假设有測试大佬发现内容不正确.欢迎指正,我会及时改动. 大多数的iOS App(没有持续集成)迭代流程是这种 也就是说.測试是公布之前的最后一道关卡.假设bug不能在測试中发现,那么bug 就会 ...

随机推荐

  1. Java乐观锁实现之CAS操作

    介绍CAS操作前,我们先简单看一下乐观锁 与 悲观锁这两个常见的锁概念. 悲观锁: 从Java多线程角度,存在着“可见性.原子性.有序性”三个问题,悲观锁就是假设在实际情况中存在着多线程对同一共享的竞 ...

  2. JDK源码(1.7) -- java.util.Arrays

    java.util.Arrays 源码分析 ------------------------------------------------------------------------------ ...

  3. Codeforces Round #346 (Div. 2) C. Tanya and Toys 贪心

    C. Tanya and Toys 题目连接: http://www.codeforces.com/contest/659/problem/C Description In Berland recen ...

  4. Java中应该返回零长度数组或空集合,而不是返回null(转)

    说明:为了避免在数组和集合的获取上增加null的判断,同时也能减少不必要的空指针异常,通常会在业务返回零数组或空集合. 方法: 1.数组: 定义全局静态常量来减少内存开销:private static ...

  5. MySql清空表的方法介绍 : truncate table 表名

    清空某个mysql表中所有内容 delete from 表名; truncate table 表名; 不带where参数的delete语句可以删除mysql表中所有内容,使用truncate tabl ...

  6. Framebuffer重要结构体说明

    l  fb_var_screeninfo:记录了帧缓冲设备和指定显示模式的可修改记录.包括屏幕的分辨率,像素信息和一些时序变量 struct fb_var_screeninfo { __u32 xre ...

  7. 【转】C与CPP后缀的文件在编译时的区别

                                                            本文出处连接, by Ray FAN(ielnaf@qq.com)            ...

  8. 牛客网java基础知识

    1.java把表示范围大的数转换为表示范围小的数,需要强制类型转换. Java中,数据类型分为基本数据类型(或叫做原生类.内置类型)和引用数据类型.原生类型为基本数据类型int和布尔值可以相互转换吗? ...

  9. sql 语句之 case

    case语句语法: --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASE WHEN ...

  10. IDE的文件和代码模板

    设置IDE的的模板,可以在创建文件的时候,自动产生模板内容,模板里可以 模板头设置: # -*- coding: utf- -*- """ --------------- ...