我正在使用dbunit创建数据库备份,可以将其导入和导出。我的应用程序可以使用多个数据库引擎:MySQL,PostgreSQL,SQLServer,H2和Oracle。
上面的所有代码都可以通过以下代码正常工作:
// Connect to the database
conn =BackupManager.getInstance().getConnection();
IDatabaseConnection connection = new DatabaseConnection(conn);
InputSource xmlSource = new InputSource(new FileInputStream(new File(nameXML)));
FlatXmlProducer flatXmlProducer = new FlatXmlProducer(xmlSource);
flatXmlProducer.setColumnSensing(true);
DatabaseOperation.CLEAN_INSERT.execute(connection,new FlatXmlDataSet(flatXmlProducer));
但是在Oracle上,我遇到了以下异常:
!ENTRY es.giro.girlabel.backup 1 0 2012-04-11 11:51:40.542
!MESSAGE Start import backup
org.dbunit.database.AmbiguousTableNameException: AQ$_SCHEDULES
at org.dbunit.dataset.OrderedTableNameMap.add(OrderedTableNameMap.java:198)
at org.dbunit.database.DatabaseDataSet.initialize(DatabaseDataSet.java:231)
at org.dbunit.database.DatabaseDataSet.getTableMetaData(DatabaseDataSet.java:281)
at org.dbunit.operation.DeleteAllOperation.execute(DeleteAllOperation.java:109)
at org.dbunit.operation.CompositeOperation.execute(CompositeOperation.java:79)
at es.giro.girlabel.backup.ImportBackup.createData(ImportBackup.java:39)
at es.giro.girlabel.backup.handlers.Import.execute(Import.java:45)
从文档:
public class AmbiguousTableNameException extends DataSetException
IDataSet
当可访问具有相同名称的多个表时,抛出此异常。当数据库连接可以访问包含相同表名的多个模式时,通常会发生这种情况。可能的解决方案:
1)使用只能访问一个数据库模式的数据库连接凭据。
2)为
DatabaseConnection
或DatabaseDataSourceConnection
构造函数指定架构名称 。3)启用合格的表名支持(请参阅操作方法文档)。
我试图创建一个简单的SpringBoot DB单元存储库测试,但我得到了一个: NoSuchBeanDefinitionException:没有类型为“example”的限定bean。ItemRepository'可用:至少需要1个符合autowire候选条件的bean。依赖项注释:{@org.springframework.beans.factory.annotation.Autowired(r
DbUnit 使您可以容易地执行 JDBC 查询并获取它们的值。使用 DbUnit JDBC 包装器而不是纯粹的 JDBC 有几个理由: 可以用 SQL 查询创建一个 Dataset ,并使用 DbUnit 的 assertion(断言)方法(在后面描述)。 可以用 SQL 查询创建一个 Dataset ,并将它保存为一个 FlatXmlDataSet 。可以在以后将它重新装载到数据库中。 可以容
Spring DBUnit 提供了 Spring 测试框架和 DBUnit 项目,允许你通过注解来实现测试的一些准备工作。 示例代码: @RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration@TestExecutionListeners({ DependencyInjectionTestExecutionListener.class
问题内容: 我有一个这样的表: 因此,(ID,KEY)元组可以视为主键。 我试图返回这样的行: 因此,除了通过对每列进行子选择之外,如何才能抓住键值(如果有的话)并将它们收集到我的单行中?到目前为止,我尝试过的是: 但是出于明显的原因,此操作会为每个匹配的键返回一行,而不是每个id返回一行。 我该如何以自己想要的方式进行操作? 谢谢! 问题答案: 您可以在任何版本的Oracle中旋转这样的数据。
我正在尝试在我的 Glassfish 4 中建立 JDBC 连接,但它抱怨当我 ping 它时 URL 不正确。 到目前为止,我已经将ojdbc6.jar和ojdbc7.jar文件复制到Glassfish 4中 我的常规设置如下所示: 我的附加属性如下所示: 在我的Oracle Devloper中,我的设置如下所示: 知道我做错了什么吗?我错过了斜线还是什么?
问题内容: 我想知道如何使用Java获取解释计划。我之所以需要它,是因为我们有一个特殊用户可以编写报告的框架。这些报告有时会生成大量查询,我们想在其中动态解释并存储其成本。这样,我们可以稍后分析高成本查询并进行优化。 给我非法列异常的示例代码: 问题答案: 用这个: