我正在使用DBUnit将数据(从Postgres DB转储)插入SQL Server,但想插入到模式“规则”而不是默认的“ dbo”模式中:
Class.forName(net.sourceforge.jtds.jdbc.Driver.class.getName());
Connection sqlsCon = DriverManager.getConnection("jdbc:jtds:sqlserver://5.5.5.5:7000;databaseName=THE_DB", "THE_USER", "THE_PW");
IDatabaseConnection sqlsDbCon = new DatabaseConnection(sqlsCon);
DatabaseOperation.CLEAN_INSERT.execute(sqlsDbCon, partialDataSet);
谢谢!
答案 0 :(得分:0)
有几种支持该方法的方法,请参见此处的文档: http://dbunit.sourceforge.net/faq.html#AmbiguousTableNameException
例如,您可以启用合格的表名属性,并使用完全合格的表名,例如SCHEMA.TABLE。启用涉及以下代码:
Text Markup
答案 1 :(得分:0)
如果您使用 spring boot 2,那么您可以在配置中提供自定义配置:
@TestConfiguration
public class MyDbUnitConfiguration {
@Bean
public DatabaseDataSourceConnectionFactoryBean dbUnitDatabaseConnection(DataSource dataSource) {
DatabaseConfigBean databaseConfig = new DatabaseConfigBean();
databaseConfig.setQualifiedTableNames(Boolean.TRUE);
DatabaseDataSourceConnectionFactoryBean databaseDataSourceConnectionFactory =
new DatabaseDataSourceConnectionFactoryBean();
databaseDataSourceConnectionFactory.setDatabaseConfig(databaseConfig);
databaseDataSourceConnectionFactory.setDataSource(dataSource);
return databaseDataSourceConnectionFactory;
}
}
包括此配置并将您的 datasets.xml 更新为完全限定名称。