再说Could not execute JDBC batch update

上一次说了Hibernate这个异常,因为我那次没有把自增的主键设为"increment",不过后来发现其他情况也会出现这个异常,原因情况比较多,归纳了一下,觉得还是因为Hibernate并没有跟数据库有非常密切的交互,所以后台数据库里出问题了,也不能及时反映在Hibernate中,而仅仅用一个Could not execute JDBC batch update来应付开发人员~

解决办法就是,我们可以去查看数据库日志,每当Hibernate出现这个异常的时候,一般来说都是因为不满足数据库的约束造成的,比如唯一约束,外键约束,自增约束等等~ 我们只要配置好了数据库的日志,那么日志就会清清楚楚地告诉我们是哪里出了问题~

这里我来简单说一下PostgreSQL的日志配置方法:

1- 打开PostgreSQL安装目录下的data文件夹下的postgresql.conf文件,修改 # - What to Log - 那里如下:

# - What to Log -

debug_print_parse 
=  off
debug_print_rewritten 
=  off
debug_print_plan 
=  off
debug_pretty_print 
=  off
log_connections 
=  on
log_disconnections 
=  on
log_duration 
=  on
log_line_prefix 
=  '<%t ; PID:%p;Command Tag:%i;SessionID:%c;SessionLineNum:%l;SessionStartTime:%s;TranID:%x>'            # Special values:
                    #   %u  =  user name
                    #   %d 
=  database name
                    #   %r 
=  remote host and port
                    #   %h 
=  remote host
                    #   %p 
=  PID
                    #   %t 
=  timestamp (no milliseconds)
                    #   %m 
=  timestamp with milliseconds
                    #   %i 
=  command tag
                    #   %c 
=  session id
                    #   %l 
=  session line number
                    #   %s 
=  session start timestamp
                    #   %x 
=  transaction id
                    #   %q 
=  stop here in non-session 
                    #        processes
                    #   %% 
=  '%'
                    # e.g. '<%u%%%d> '
log_statement 
=  'all'            # none ,  ddl ,  mod ,  all
#log_hostname 
=  off

注意:log_line_prefix 那行配置的就是你将从日志文件中看到的东西~ 执行语句,变量都包括了,一览无余~

2- 修改完别忘了保存,然后在控制面板-管理工具-服务中重启PostgreSQL服务~ 查看日志的地方可以在data文件夹下的pg_log文件夹里,也可以到pgAdmin中,选中数据库,然后点“工具-服务器状态-日志档”。

哈哈,这回再有Could not execute JDBC batch update异常,就再也不怕找不到原因摸不着头脑了~

有疑问或者建议,随时跟我联系给我留言~

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值