使用DBUnit进行数据库备份与恢复
来源:互联网 发布:财经杂志知乎 编辑:程序博客网 时间:2024/04/28 02:49
最近主要使用DBUnit进行跨数据库备份恢复,一方面用于单元测试,另一方面也用于快速导入初始数据。遇到的问题有:
1、建立数据库。
DBUnit可以使用DTD结构存储数据库结构,但是貌似结构不可以恢复,所以使用了Hibernate的DDL恢复数据库结构。
2、关联表结构。
数据库需要按照关联表结构从低到高依次插入,否则外键关联时无法插入。在导出备份数据时,需要按照次序导出。代码如下:
3、不同数据库的支持。
DBUnit数据库扩展支持里包含了几种主流数据库,其支持包括了不同数据库的数据库连接、数据库字段类型等。
ORACLE:由于数据库存在多用户多表空间,所以不管是在备份还是恢复时,其连接都需要指定schema,即登陆用户名。在恢复数据时,对于二进制数据还可能出现BLOB或者CLOB相关的错误,使用其扩展连接基本可以解决。其表名全部是大写,需要单独处理。
MSSQL:由于其字段自增机制,主键是无法插入的,使用其扩展支持操作类可以解决。其表名首字母大写,需要单独处理。
MYSQL:MYSQL在备份数据时,布尔字段值为true或者false。但不管是ORACLE还是MSSQL,布尔型的存储都是数字类型(NUMBER、Tinyint,通过Hibernate-ddl建立)。DBUnit在恢复true或者false值到ORACLE及MSSQL时把true或false转换成数字型,目前没有找到解决方案,只好把导出数据的true及false改成1和0。
HSQLDB:由于只有数据导入,目前没有发现问题。
- 使用DBUnit进行数据库备份与恢复
- 使用imp/exp进行ORACLE数据库备份与恢复
- DbUnit数据库测试之备份与还原
- 使用DbUnit进行数据库操作的单元测试
- 使用SQLDMO备份与恢复数据库
- 使用SQL语句备份与恢复数据库
- 使用xtrabackup来备份与恢复数据库
- 使用RMAN 备份与恢复数据库
- 使用EXP/IMP来进行数据库表的逻辑备份与恢复
- 数据库备份与恢复
- 数据库备份与恢复
- 备份与恢复数据库
- 数据库备份与恢复
- 数据库备份与恢复
- 数据库备份与恢复
- 数据库备份与恢复
- 数据库备份与恢复
- 数据库备份与恢复
- [DB][OARCLE]在Oracle中生成GUID类型--SYS_GUID()函数
- B&N: 请尊重知识产权!
- Linux的shell编程
- 在Ubuntu 9.10中安装IBus输入法
- JavaScript继承详解
- 使用DBUnit进行数据库备份与恢复
- DirectFB中的一些结构(Screen,Window, Layer, Surface)及其之间的关系
- Boot Loader 的主要任务与典型结构框架
- ArcGIS.Server.9.2.DotNet实现EditorTask功能扩展
- carbide.c++制作证书
- Carbide.C++ 的FAQ
- [DB][OARCLE]Oracle中树形数据(父子项数据)检索的CONNECT BY PRIOR 递归算法
- [Simple] 方阵由外向内旋转排列,打印
- 软路由全集