尝试在内存 DB2 数据库上运行插入语句时,DBUnit 抛出异常:
org.dbunit.dataset.DataSetException: java.sql.SQLSyntaxErrorException: Syntax error: Encountered "HOUR" at line 1, column 45.
我意识到“HOUR”是 DB2 中的保留关键字,但我不确定如何让 dbunit 转义这个保留关键字。
发现 dbunit 的默认转义模式是空字符串,于是 dbunit 识别了保留关键字并尝试用空字符串对其进行转义。为了改变这一点,我使用以下方法来更改保留关键字的转义模式,现在它正在工作:
dbunitConn.getConfig().setProperty(DatabaseConfig.PROPERTY_ESCAPE_PATTERN, "\"?\"");
您可以尝试在数据库配置上使用属性:
DatabaseConfig config = connection.getConfig();
config.setProperty(DatabaseConfig.PROPERTY_ESCAPE_PATTERN, "[HOUR]");