在mysql中如果我们使用关键字作为表的列名,那么在增删改查的时候,如果要用到该列,则列名要加反引号``
如:下表
要使用列createtime时需要加``.
而使用mybatis逆向工程生成的mpper文件中,mybatis会对关键字进行处理:在关键字列名外加上""
<sql id="Base_Column_List">
id, name, price, pic, " createtime"
</sql>
但是加双引号是不正确的,因为实际上要加的是反引号,用双引号,属性" createtime"就变成了一个字符串,而不是列名了,在调用mapper的时候就会出现返回的是一个字符串或者直接抛出异常的情况.
所以在用mybatis逆向工程的时候,一定要注意mapper文件中关键字列名是否是用反引号``包起来.
我就是因为没有留意到这个问题,导致我在items实体类接收数据库返回的数据时,抛出了Bad format for Timestamp '1’的异常,让我以为是数据库中的date类型转换成java的date类型时,发生了错误.实际上,是因为我用date类型接收字符串类型导致的