自己主动化測试使用mybatis更新数据库信息实例
代码例如以下:
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更新数据库信息实例的更多相关文章
- Selenium2 Python 自己主动化測试实战学习笔记(五)
7.1 自己主动化測试用例 无论是功能測试.性能測试和自己主动化測试时都须要编写測试用例,測试用例的好坏能准确的体现了測试人员的经验.能力以及对项目的深度理解. 7.1.1 手工測试用例与自己主动化測 ...
- Mock+Proxy在SDK项目的自己主动化測试实战
项目背景 广告SDK项目是为应用程序APP开发者提供移动广告平台接入的API程序集合,其形态就是一个植入宿主APP的jar包.提供的功能主要有以下几点: - 为APP请求广告内容 - 用户行为打点 - ...
- 【金阳光測试】大话Android自己主动化測试--Android自己主动化系列(1)--金阳光于2013年4月份
Android自己主动化測试框架和工具在四年多的发展日趋成熟. 从五年前的第一代自己主动化架构演进到眼下第四代(本系列讲座第7篇后将具体剖析第三代和第四代自己主动化框架)从曾经最早谷歌推崇的monke ...
- Android自己主动化測试解决方式
如今,已经有大量的Android自己主动化測试架构或工具可供我们使用,当中包含:Activity Instrumentation, MonkeyRunner, Robotium, 以及Robolect ...
- Android自己主动化測试之Monkeyrunner用法及实例
眼下android SDK里自带的现成的測试工具有monkey 和 monkeyrunner两个.大家别看这俩兄弟名字相像,但事实上是完全然全不同的两个工具,应用在不同的測试领域.总的来说,monke ...
- MAC中在eclipse luna上搭建移动平台自己主动化測试框架(UIAutomator/Appium/Robotium/MonkeyRunner)关键点记录
这几天由于原来在用的hp laptop的电池坏掉了,机器一不小心就断电.所以仅仅能花时间在自己的mackbook pro上又一次搭建整套环境.大家都知道搭建好开发环境是个非常琐碎须要耐心的事情,特别是 ...
- 带有机器人框架的.NET自己主动化測试
Clayton Neal在软件測试和质量保证方面有超过13年的经验,当中有八年的Windows, web,和移动应用程序的測试自己主动化经验.他在測试领域的全部等级都工作过.近期他在Bloomberg ...
- Android Monkey自己主动化測试
前言 假设你做Android开发,还没有使用过Monkey进行測试,那么今天看到这篇文章,希望能解决你Android測试中的一些问题.起码能帮你省点測试的时间而且发现很多其它的问题. Monkey简单 ...
- iOS自己主动化測试的那些干货
前言 假设有測试大佬发现内容不正确.欢迎指正,我会及时改动. 大多数的iOS App(没有持续集成)迭代流程是这种 也就是说.測试是公布之前的最后一道关卡.假设bug不能在測试中发现,那么bug 就会 ...
随机推荐
- [BZOJ4237]稻草人(CDQ分治)
先按y排序,二分,两边递归下去,然后处理下半部分对上半部分的贡献,即左下点在下半部分,右上点在上半部分的合法矩形个数. 两个部分均按x排序,枚举右上点p,则左下点需要满足: 1.横坐标大于上半部分纵坐 ...
- [BZOJ3142][HNOI2013]数列(组合数学)
3142: [Hnoi2013]数列 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 1721 Solved: 854[Submit][Status][ ...
- [Codeforces 1060F] Shrinking Tree
Link: 传送门 Solution: 原来CF的官方题解也能鸽啊…… 详细题解 该题思路: 1.对于每个点删边方案数为$fac[n-1]$,总贡献为每种方案下满足的概率的和,接下来直接求贡献 2.每 ...
- ThinkPHP -- 基础入门
ThinkPHP文件结构说明: |——ThinkPHP.php 框架入口文件 |——Common 框架公共文件目录 |——Conf ...
- python开发_python操作mysql数据库
如果你还没有准备好开发环境,你不妨花上一小点时间去看看:python开发_mysqldb安装 本篇blog是有关python操作mysql数据的相关内容. 我做了一个demo: 先看运行效果: mys ...
- Mysql报错 Cannot load from mysql.proc
Auth: Jin Date: 20140716 mysql --default-character-set utf8 -h127.0.0.1 -uroot -p < account-20140 ...
- XPath教程
XPath 简介 XPath 是一门在 XML 文档中查找信息的语言.XPath 可用来在 XML 文档中对元素和属性进行遍历. XPath 是 W3C XSLT 标准的主要元素,并且 XQuery ...
- 分布式服务的事务如何处理?比如dubbo,服务与服务之间的事务怎么处理比较好,现在有没有开源的解决方案?
作者:何明璐链接:http://www.zhihu.com/question/29483490/answer/98237582来源:知乎著作权归作者所有,转载请联系作者获得授权. 首先是不建议采用XA ...
- JQuery 关于位置的计算(重要)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- JACOB的语法
转自:http://www.bitscn.com/pdb/java/200904/161117.html 如果你想写一个JAVA代码,其中需要调用JACOB提供的功能,而你还是新手,也许篇文章会大大降 ...