`
CoderDream
  • 浏览: 479547 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

DBUnit最佳实践之使用ant命令

 
阅读更多

在做测试之前,我们需要对数据进行备份,用DBUnit可以很方便的对数据库中的数据进行备份和恢复。

下面我们来看看如何通过ant脚本命令才实现。

 

目录结构

  • 项目结构图
  • 需要用到的jar
  • 运行前准备
  • 运行与结果
  • 源代码
    1. Ant编译文件
    2. 数据库脚本
  • 参考文档
  • 完整项目源代码

项目结构图

 

 

需要用到的jar

  1. commons-logging-1.1.1.jar
  2. dbunit-2.4.8.jar
  3. junit-4.9b2.jar
  4. mysql-connector-java-3.1.12-bin.jar
  5. slf4j-api-1.6.1.jar
  6. slf4j-jcl-1.6.1.jar

运行前准备

  1. 在MySQL的客户端,如Navicat Premium中执行sql文件夹中的dbup.sql文件,创建数据库和表;
  2. 打开Ant面板,eclipse中,Window -> Show View -> Others,然后输入 ant,选ant,然后点【OK】按钮;
  3. 将build.xml拖拽到Ant面板;

运行与结果

  1. 选择Ant面板中的dbunit-ant,点击三角箭头,可以看到不同的target;
  2. 选择export-all:
    执行编译:点击右键,Run As -> Ant Build;
    执行结果:导出所有表的数据至xml文件,存放在data/all-data.xml中;
  3. 选择import-all:
    执行编译:点击右键,Run As -> Ant Build;
    执行结果:导入data/all-data.xml文件中的数据到数据库中;
  4. 选择export-table-student:
    执行编译:点击右键,Run As -> Ant Build;
    执行结果:导出student表的查询结果及user表的全部数据到data/export-student.xml中;
  5. 选择compare:
    执行编译:点击右键,Run As -> Ant Build;
    执行结果:比对数据库中的数据与data/init-data.xml文件中的数据。

源代码

Ant编译文件

build.xml

<?xml version="1.0" encoding="UTF-8"?>
<project name="dbunit-ant" basedir="." default="">
	<property name="db.driver" value="com.mysql.jdbc.Driver" />
	<property name="db.url" value="jdbc:mysql://127.0.0.1:3306/dbup?characterEncoding=UTF-8" />
	<property name="db.username" value="root" />
	<property name="db.password" value="1234" />

	<path id="classpath">
		<fileset dir="${basedir}/libs/">
			<include name="*.jar" />
		</fileset>
	</path>

	<taskdef name="dbunit" classname="org.dbunit.ant.DbUnitTask" classpathref="classpath" />

	<!-- 导出所有数据到xml文件-->
	<target name="export-all">
		<dbunit driver="${db.driver}" url="${db.url}" userid="${db.username}" password="${db.password}" supportBatchStatement="true">
			<export format="xml" dest="data/all-data.xml" />
		</dbunit>
	</target>

	<!-- 导出查询结果和表数据到xml文件-->
	<target name="export-table-student">
		<dbunit driver="${db.driver}" url="${db.url}" userid="${db.username}" password="${db.password}" supportBatchStatement="true">
			<export format="xml" dest="data/export-student.xml">
				<query name="student" sql="SELECT id, name, sex, birthday FROM STUDENT WHERE id=1" />
				<table name="user" />
			</export>
		</dbunit>
	</target>

	<!-- 比对数据库中的数据与data/init-data.xml文件中的数据 -->
	<target name="compare">
		<dbunit driver="${db.driver}" url="${db.url}" userid="${db.username}" password="${db.password}" supportBatchStatement="true">
			<compare format="xml" src="data/init-data.xml" />
		</dbunit>
	</target>

	<!-- 导入data/all-data.xml文件中的数据到数据库中 -->
	<target name="import-all">
		<dbunit driver="${db.driver}" url="${db.url}" userid="${db.username}" password="${db.password}" supportBatchStatement="true">
			<operation format="xml" type="CLEAN_INSERT" src="data/all-data.xml" />
		</dbunit>
	</target>

</project>

 

数据库脚本

dbup.sql

/*
Navicat MySQL Data Transfer

Source Server         : localhost
Source Server Version : 50525
Source Host           : localhost:3306
Source Database       : dbup

Target Server Type    : MYSQL
Target Server Version : 50525
File Encoding         : 65001

Date: 2014-10-11 14:27:06
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for `role`
-- ----------------------------
DROP TABLE IF EXISTS `role`;
CREATE TABLE `role` (
  `id` varchar(20) NOT NULL DEFAULT '',
  `roleName` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of role
-- ----------------------------
INSERT INTO `role` VALUES ('1', '管理员');
INSERT INTO `role` VALUES ('2', '普通用户');

-- ----------------------------
-- Table structure for `student`
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
  `id` varchar(20) NOT NULL DEFAULT '',
  `name` varchar(20) DEFAULT NULL,
  `sex` varchar(10) DEFAULT NULL,
  `birthday` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES ('1', '2', '3', '4');

-- ----------------------------
-- Table structure for `user`
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` varchar(20) NOT NULL DEFAULT '',
  `name` varchar(20) DEFAULT NULL,
  `role_id` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `ref_id` (`role_id`),
  CONSTRAINT `ref_id` FOREIGN KEY (`role_id`) REFERENCES `role` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('1', '张三', '1');
INSERT INTO `user` VALUES ('2', '李四', '2');

 

 

参考文档

  1. 使用DBUnit进行数据库备份与恢复
  2. 用DBUnit做数据备份恢复工具

完整源代码

  • 大小: 19.4 KB
1
0
分享到:
评论

相关推荐

    2025最新全国水利安全生产知识竞赛题库(含答案).docx

    2025最新全国水利安全生产知识竞赛题库(含答案).docx

    【雷达】非相干多视处理(CSA)Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    使用 MATLAB 的实时人脸识别考勤系统Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    elasticsearch8.17.1 docker镜像资源

    因为文件过大所以使用bz2进行了2次压缩,请解压成tar包后在上传到服务器

    基于java+ssm+mysql的校园二手交易平台 源码+数据库+论文(高分毕设项目).zip

    项目已获导师指导并通过的高分毕业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea 数据库:MySql8.0 部署环境:Tomcat(建议用 7.x 或者 8.x 版本),maven 数据库工具:navicat

    iostat打印解析画图工具

    iostat打印解析画图工具

    fence-agents-compute-4.2.1-41.el7-9.6.x64-86.rpm.tar.gz

    1、文件内容:fence-agents-compute-4.2.1-41.el7_9.6.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/fence-agents-compute-4.2.1-41.el7_9.6.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装

    从倾斜边缘或倾斜狭缝计算 MTFMatlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    维控HMI和PLC在各行业的应用

    PDF格式,229页,包括有环保,新能源,木工,包装等行业的应用。适用于电气自动化行业。

    dropwatch-1.4-9.el7.x64-86.rpm.tar.gz

    1、文件内容:dropwatch-1.4-9.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/dropwatch-1.4-9.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装

    fence-agents-emerson-4.2.1-41.el7-9.6.x64-86.rpm.tar.gz

    1、文件内容:fence-agents-emerson-4.2.1-41.el7_9.6.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/fence-agents-emerson-4.2.1-41.el7_9.6.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装

    航空发动机磨粒荷电特性研究.pdf

    航空发动机磨粒荷电特性研究.pdf

    第十一届蓝桥杯大赛个人赛校内选拔(软件类)真题

    第十一届蓝桥杯大赛个人赛校内选拔(软件类)真题全面考察了参赛选手的编程与算法能力,涵盖多个热门编程语言,为选手提供了展现自身实力的舞台。 考察范围与方向 真题在编程语言上聚焦于 C/C++、Java、Python 等主流语言。考察内容广泛,既有基础的语法运用,也涉及复杂的数据结构和算法。数据结构方面,对数组、链表、栈、队列、哈希表等的使用有不同程度的考察;算法上,动态规划、贪心算法、搜索算法等经典算法是考察重点。 题型示例与特点 在具体题型上,有数值计算类题目,例如给定条件计算特定数值,要求选手有较强的逻辑思维和数学运算能力;字符串处理类题目,如字符串匹配、替换等,考验选手对字符串操作函数的熟悉程度;还有图论与搜索类题目,像最短路径问题,需要选手掌握相应的搜索算法。 考察目的与意义 这次校内选拔真题旨在筛选出编程能力强、算法思维敏捷的选手,为后续的正式比赛储备人才。通过解答这些真题,选手能发现自身知识短板,明确学习方向。对于学校而言,能了解学生的编程水平,为教学改进提供参考。同时,这也为学生提供了与同龄人交流切磋的机会,激发他们学习编程的热情,提升解决实际问题的能力。

    一种采用耦合电感的开关电路分析.pdf

    一种采用耦合电感的开关电路分析.pdf

    rancher-active-proxy

    rancher-active-proxy

    RSSIIndoorLocation-master

    RSSIIndoorLocation-master

    【电力系统】基于主从博弈的售电商多元零售套餐设计与多级市场购电策略Matlab复现.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    exchange-bmc-os-info-1.8.18-11.el7-9.x64-86.rpm.tar.gz

    1、文件内容:exchange-bmc-os-info-1.8.18-11.el7_9.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/exchange-bmc-os-info-1.8.18-11.el7_9.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装

    基于java+ssm+mysql的图书管理借阅系统 源码+数据库+论文(高分毕设项目).zip

    项目已获导师指导并通过的高分毕业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea 数据库:MySql8.0 部署环境:Tomcat(建议用 7.x 或者 8.x 版本),maven 数据库工具:navicat

Global site tag (gtag.js) - Google Analytics