自动化测试使用mybatis更新数据库信息实例
2015-12-29 18:06
405 查看
代码如下:
mybatis配置文件:
JDBC配置文件:
供应商数据对象类:
DAO层接口
Mybatis 的sql mapper 文件:
DAO实现类(注意添加pageobject标签,为用例自动注入此DAO实例):
测试用例如下:
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"); } }
相关文章推荐
- 数据库优化基础
- 修改mysql用户密码
- innobackupex备份mysql数据库
- SQLServer使用sql语句复制数据库
- mybatis查询数据库返回结果为空
- SQL Mon 介绍
- mysql的主从复制和读写分离
- mysql修改数据库字符集,编码
- mysql用户及数据库的创建及权限的更改
- mysql主从同步
- sql存储过程等-版本控制
- Sqlite中的NULL值和空值的比较
- CentOS7.2 安装redis 3.0.6集群
- Sql Server利用游标批量清空数据表
- 关于spring session redis共享session的一个坑
- 利用redis写webshell
- Spring boot配合Spring session(redis)遇到的错误
- 常用hive命令
- oracle 未归档redo丢失或损坏(active状态)
- oracle 未归档redo丢失或损坏(inactive状态)