首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >DbUnit -警告: AbstractTableMetaData

DbUnit -警告: AbstractTableMetaData
EN

Stack Overflow用户
提问于 2010-10-15 22:06:17
回答 6查看 15K关注 0票数 19

我在最新的2.4.8版本中使用DbUnit,我在单元测试中收到了很多警告,消息如下:

代码语言:javascript
运行
复制
WARN : org.dbunit.dataset.AbstractTableMetaData - 
Potential problem found: The configured data type factory 
    'class org.dbunit.dataset.datatype.DefaultDataTypeFactory' 
     might cause problems with the current database 'MySQL' (e.g. some datatypes may 
     not be supported properly). In rare cases you might see this message because the 
     list of supported database products is incomplete (list=[derby]). If so please 
     request a java-class update via the forums.If you are using your own 
     IDataTypeFactory extending DefaultDataTypeFactory, ensure that you override 
     getValidDbProducts() to specify the supported database products.

因此,我想添加以下内容(我使用MySQL数据库):

代码语言:javascript
运行
复制
protected void setUpDatabaseConfig(DatabaseConfig config) {
    config.setProperty(DatabaseConfig.PROPERTY_DATATYPE_FACTORY, new MySqlDataTypeFactory());
}

但这无助于避免这些警告。这是怎么回事?

提前感谢你,并向你致以最好的问候,蒂姆。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-05-06 23:49:07

我用来自dbunit faq的信息解决了这个问题。只需设置数据类型工厂属性,警告就会消失。

代码语言:javascript
运行
复制
    Connection dbConn = template.getDataSource().getConnection();

    IDatabaseConnection connection = new DatabaseConnection(dbConn, "UTEST", false);

    DatabaseConfig dbConfig = connection.getConfig();

    // added this line to get rid of the warning
    dbConfig.setProperty(DatabaseConfig.PROPERTY_DATATYPE_FACTORY, new OracleDataTypeFactory());
票数 34
EN

Stack Overflow用户

发布于 2017-03-29 23:27:03

通过Spring-Boot,您可以使用这样的配置bean

代码语言:javascript
运行
复制
@Configuration
public class DbUnitConfiguration {

@Autowired
private DataSource dataSource;

@Bean
public DatabaseDataSourceConnectionFactoryBean dbUnitDatabaseConnection() {
    DatabaseConfigBean bean = new DatabaseConfigBean();
    bean.setDatatypeFactory(new MySqlDataTypeFactory());

    DatabaseDataSourceConnectionFactoryBean dbConnectionFactory = new DatabaseDataSourceConnectionFactoryBean(dataSource);
    dbConnectionFactory.setDatabaseConfig(bean);
    return dbConnectionFactory;
    }
}
票数 9
EN

Stack Overflow用户

发布于 2014-02-11 03:20:21

我知道这是一个老帖子,但这里的所有答案都比需要的复杂得多。

完成每次连接获取的工厂设置的最简单方法是supply一个OperationListener,并实现它的connectionRetrieved方法来做您想做的事情。不需要重写;每次获取IDatabaseConnection时都会调用侦听器。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3942965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档