<!-- pom.xml 引入dbunit -->
<dependency>
<groupId>dbunit</groupId>
<artifactId>dbunit</artifactId>
<version>2.1</version>
</dependency>
JAVA代码:
package com.sinba.common.config.backup.service;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
import org.dbunit.DatabaseUnitException;
import org.dbunit.database.DatabaseConfig;
import org.dbunit.database.DatabaseConnection;
import org.dbunit.database.IDatabaseConnection;
import org.dbunit.dataset.IDataSet;
import org.dbunit.dataset.xml.FlatXmlDataSet;
import org.dbunit.operation.DatabaseOperation;
import org.dbunit.ext.mysql.MySqlDataTypeFactory;
import org.dbunit.ext.mssql.MsSqlDataTypeFactory;
public class DBXMLHelper{
/**
* 获取连接
* @return
* @throws DatabaseUnitException
*/
private IDatabaseConnection getConnection(){
Properties hibernateProperties=new Properties();
InputStream in = DBXMLHelper.class.getResourceAsStream("/hibernate.properties");
IDatabaseConnection connection=null;
try {
hibernateProperties.load(in);
//处理连接字符串、密码
String driverClassName=hibernateProperties.getProperty("dataSource.driverClassName");
String username=hibernateProperties.getProperty("dataSource.username");
String password=hibernateProperties.getProperty("dataSource.password");
String serverName=hibernateProperties.getProperty("dataSource.serverName");
String databaseName=hibernateProperties.getProperty("dataSource.databaseName");
String url=hibernateProperties.getProperty("dataSource.url")
.replace("${dataSource.serverName}",serverName)
.replace("${dataSource.databaseName}",databaseName);
Class.forName(driverClassName);
Connection conn=DriverManager.getConnection(url,username,password);
connection = new DatabaseConnection(conn,databaseName);
//忽略约束
connection.getConnection().prepareStatement("set @@session.foreign_key_checks = 0").execute();
if("com.mysql.jdbc.Driver".equals(driverClassName)){//MySQL
connection.getConfig().setProperty(DatabaseConfig.PROPERTY_DATATYPE_FACTORY, new MySqlDataTypeFactory());
}else{//SQLServer
connection.getConfig().setProperty(DatabaseConfig.PROPERTY_DATATYPE_FACTORY, new MsSqlDataTypeFactory());
}
} catch (Exception e1) {
e1.printStackTrace();
}
return connection;
}
/**
* 导出数据库.
* @param connection
* @param fileName
* @param streamed
* @param flat
* @throws SQLException
* @throws DatabaseUnitException
* @throws FileNotFoundException
* @throws IOException
*/
public void exportDatabase(String fileName)
throws SQLException, DatabaseUnitException, FileNotFoundException,IOException {
IDataSet dataset =getConnection().createDataSet();
FlatXmlDataSet.write(dataset, new FileOutputStream(fileName));
}
/**
* 直接还原数据库(不清除数据).
* @param connection
* @param input
* @param streamed
* @param flat
* @throws DatabaseUnitException
* @throws SQLException
*/
public void refreshData(String input)
throws DatabaseUnitException, SQLException,FileNotFoundException,IOException {
IDataSet dataSet = new FlatXmlDataSet(new File(input), true);
DatabaseOperation.CLEAN_INSERT.execute(getConnection(), dataSet);
}
}
分享到:
相关推荐
在使用 DbUnit 进行数据库测试时,首先需要准备测试环境。在这个例子中,我们创建了一个名为 "student" 的测试数据库,该数据库是在 MySql 中建立的。接着,在一个名为 "DBUnitSample" 的 Java 工程中,导入了 ...
标题中的“spring+dbunit测试访问数据库代码”指的是在Java开发中使用Spring框架与DBUnit进行集成,以实现对数据库的测试。DBUnit是用于数据库单元测试的工具,它可以加载和验证数据库的数据状态,确保测试的隔离性...
首先,为了使用DbUnit,你需要下载DbUnit的工具包,通常包括DbUnit的核心jar文件以及与你所使用的数据库兼容的JDBC驱动。在这个例子中,我们使用的是MySQL数据库,所以需要导入对应的MySQL JDBC驱动。创建一个新的...
DBUnit 是一个开源的 Java 库,专门用于数据库测试,它提供了一种方式来管理和操作数据库的数据,包括...在给定的文件中,你可以学习如何解析和使用这些数据文件,以及如何利用 DBUnit 实现数据库的备份和恢复功能。
Dbunit 是一个强大的Java库,专门用于数据库的测试和数据管理。它被广泛应用于软件开发过程中,特别是对于那些依赖于数据库的应用程序,因为Dbunit能够帮助开发者有效地管理和控制数据库的状态,确保测试的一致性...
在“DBUnit最佳实践”中,作者可能还会讨论如何结合使用DBUnit与其他工具,如Ant或Maven构建工具,以及持续集成服务器如Jenkins,来自动化数据备份和恢复的过程。这样可以节省手动操作的时间,并减少人为错误的可能...
在使用 DbUnit 进行数据库测试时,用户需要连接到真实数据库,并拥有对数据库或者至少是其中的模式(schema)的独占访问权限,以免不同的开发人员同时运行测试时相互冲突。 DbUnit 的使用场景非常广泛,例如可以...
DBUnit 是一个开源的 Java 库,专门用于数据库测试,它是 xUnit 测试框架的一部分,提供...通过分析其源码和参考 API 文档,开发者不仅可以掌握如何使用 DBUnit,还能学习到数据库操作、测试策略和设计模式等相关知识。
DBUnit与H2内存数据库结合是进行单元测试的一种高效方法,尤其在开发Java应用程序时,它可以帮助开发者确保数据层的功能正确性。这篇文章将详细介绍如何利用DBUnit和H2内存数据库来构建单元测试环境。 首先,DBUnit...
DBUnit 是一个开源的 Java 工具,它与JUnit结合使用,用于数据库的测试驱动开发(TDD)。在Java应用程序的测试过程中,确保数据库状态的一致性是非常重要的,DBUnit 提供了这样的功能,它允许开发者导入和导出数据库...
DbUnit 是一个针对数据库驱动项目的JUnit扩展,同时也可用于Ant构建工具。它的主要功能是能够将数据库数据导出到XML数据集,并从XML数据集中导入,从而支持数据库的测试和数据管理。DbUnit还允许你验证数据库中的...
DBUnit 提供了一种结构化的方式来导入和导出数据库数据,使得测试环境可以被精确地设置和还原,避免了因为测试数据污染而引起的错误。 在进行单元测试时,DBUnit 允许我们将数据库的状态定义为“预期状态”(通常在...
DBUnit 是一个开源的 Java 库,专门用于数据库测试,它是 xUnit 测试框架(如 JUnit)的一个扩展。在数据库驱动的项目中,DBUnit 可以帮助开发者确保数据库状态的一致性,使得测试更加可靠。DBUnit 2.4.7 版本包含了...
在“dbunit-2.2”这个压缩包中,用户将找到DBUnit库的jar文件以及其他必要的文档和资源,用于在项目中集成和使用DBUnit 2.2进行数据库单元测试。通过这个工具,开发者可以确保数据库层的功能正确无误,提高代码质量...
DbUnit 的设计理念是,在测试之前,备份数据库,然后给对象数据库植入我们需要的准备数据,最后,在测试完毕后,读入备份数据库,回溯到测试前的状态。 DbUnit 测试基本概念和流程 DbUnit 的测试的主要接口是 ...
4. **数据库连接(Database Connection)**: 在使用 DBUnit 之前,需要配置一个数据库连接。这可以通过 JDBC URL、用户名和密码实现。 ### 使用 DBUnit 的步骤 1. **初始化**: 首先,你需要创建一个 `...
3. 填充数据库:在测试前使用DbUnit的`IDatabaseConnection`接口和`DataSetLoader`加载数据集到数据库。 4. 执行测试:运行测试代码,这将与数据库交互并执行相关操作。 5. 验证结果:在测试结束后,使用DbUnit的`...
5. **加载和清理数据**:在测试方法的前后,使用DBUnit的`IDatabaseConnection`和`IDataSet`接口加载数据集到数据库,并在测试结束后清理数据。Spring的`@Before`和`@After`注解可以用来标记这些方法。 6. **编写...
用于数据库测试的一个工具,具有很强的灵活性。也是自己在网上找的,分享一下