今天在项目运行过程中,一直报一个org.hibernate.exception.GenericJDBCException: could not insert 异常,Root Cause是IBM DB2 ErrorCode=-180,sqlstate=22007,经过Google,发现这个错误的原因是因为Timestamp的格式不规范导致,但是具体是哪一项,却不太清楚,如果能够打印出导致问题的SQL语句,那么对于这类问题的定位就会非常容易了。
在Hibernate的配置文件hibernate.cfg.xml中有3个设置项跟显示SQL语句相关,他们的值都是boolean值:
(1)、show_sql:是否显示SQL语句
(2)、format_sql: 是否格式化输出字符串,增强SQL的可读性
(3)、use_sql_comments:是否显示注释,用于指示出是什么操作产生了这个SQL语句。
在默认情况下,Hibernate会把SQL语句打印在Console上,因此在开启了上面的设置之后,可以在控制台上看到如下结构的SQL语句:
在Hibernate的配置文件hibernate.cfg.xml中有3个设置项跟显示SQL语句相关,他们的值都是boolean值:
(1)、show_sql:是否显示SQL语句
(2)、format_sql: 是否格式化输出字符串,增强SQL的可读性
(3)、use_sql_comments:是否显示注释,用于指示出是什么操作产生了这个SQL语句。
在默认情况下,Hibernate会把SQL语句打印在Console上,因此在开启了上面的设置之后,可以在控制台上看到如下结构的SQL语句: