最近在做一个项目,测试用的是dbunit测试框架,说实话,这次是第一次使用,一开始还好好的,但最近遇到一个dbunit 中 有关一张表的dataset XML配置问题。问题如下:
现在我有一张设备信息表例如:
-------------------------
设备类型表
create table device_type(
id int primary key auto_increment,
`type` char(20) unique,
`describe` char(40)
);
而按照官网的教程
一般我们有关此表dataset配置如下
XML code
<dataset>
<device_type id="1" type="Router" describe="路由器"/>
</dataset>
当我使用此xml配置初始化IDataSet的时候就报错了,错误信息为:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'describe) values (1, 'Router', '路由器')' at line 1
我的问题解决思路:
1.因为XML attributes correspond to table columns.是表中字段是`type`而非type,是`describe`而非describe,很明显多了两个反单引号,其实我不太明白它为什么设计表的,难道是因为type,describe与Mysql中的关键字冲突。所以在配置的时候,我很想和数据库中该表的对应字段保持一致,但如果我在xml中将type和describe直接加上反单引号,那么直接xml就报错了。
所以我现在很纠结,有什么办法能解决这种数据库字段带有符号在dbunit 中 XML dataset document 配置问题。
------解决方案--------------------
单反引号,是MySQL中用来标识 字段 的,类似于Oracle中的双引号,本身并不是字段名称。。。。。。