【问题标题】:Unitils / DBunit / Oracle - how to insert dataset in oracle views?Unitils / DBunit / Oracle - 如何在 oracle 视图中插入数据集?
【发布时间】:2011-04-29 13:13:03
【问题描述】:

这似乎是一个简单的问题。我在 spring 应用程序中有一些 unitils 测试。数据库包含一些 oracle 视图,我只想将数据集插入这些视图。 我知道可以将选项设置为 DBunit(表类型属性)。但我找不到任何单位。

是否有一些用于将数据集插入视图的 unitils 属性?

感谢您的帮助

【问题讨论】:

  • 只能在“简单”视图(仅基于一张表的视图)上执行插入。您不能将记录插入到多个表的连接结果的视图中。您需要做的第一件事是确定是否可以插入到视图中。
  • 可能您想将数据添加到实际用于拥有视图的表中......
  • 好吧,不用修改java代码,视图就可以切换到db中的不同表集...
  • 也许现在是您的组织实施适当的 DAO 层的好时机,以便数据库更改不会在未来对您的项目产生如此大的影响?

标签: java oracle views dbunit unitils


【解决方案1】:

好的,我想我找到了一种配置 unitils 的方法。但这需要一些java代码。我已经测试过这个解决方案,它似乎可以工作。

首先我在 unitils (unitils.properties) 中找到一些属性:

unitils.module.dbunit.className=org.unitils.dbunit.DbUnitModule
unitils.module.dbunit.runAfter=
unitils.module.dbunit.enabled=true

所以似乎可以像这样覆盖 DBUnitModule


public class DbUnitModule extends org.unitils.dbunit.DbUnitModule implements Module {
    /*
     * (non-Javadoc)
     * 
     * @see org.unitils.dbunit.DbUnitModule#getDbUnitDatabaseConnection(java.lang.String)
     */
    @Override
    public DbUnitDatabaseConnection getDbUnitDatabaseConnection(final String schemaName) {
        DbUnitDatabaseConnection dbConnection = super.getDbUnitDatabaseConnection(schemaName);
        dbConnection.getConfig().setProperty("http://www.dbunit.org/properties/tableType", new String[] { "VIEW", "TABLE" });
        return dbConnection;
    }
}

然后修改unitils.properties中的配置。

【讨论】:

  • 仅限:unitils.module.dbunit.className=your.package.YourClassExtendsDbUnitModule
猜你喜欢
  • 2015-04-06
  • 2015-09-26
  • 1970-01-01
  • 1970-01-01
  • 2017-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多