
(controller->)action->service->dao
在dao里面,你 *** 作数据库如果有异常,你就抛出去(throw exception),不要自己手动捕获。
service层也是一样,这样你的action里面调用service的方法 ,捕获异常,然后将信息返回给客户端就可以了。
Throwable getCause()返回此 throwable 的 cause;如果 cause 不存在或未知,则返回 null。
String getLocalizedMessage()
创建此 throwable 的本地化描述。
String getMessage()
返回此 throwable 的详细消息字符串。
息 不报错 确修改失败了java mysql修改信息 不报错 确修改失败了_数据库字段异常可能是mysql严格模式导致...
IvanhoeBlack
原创
关注
0点赞·498人阅读
最近,新手同事Java开发中遇到数据库报错:
“ java.sql.SQLIntegrityConstraintViolationException: Column 'create_time' cannot be null”
而且开发环境上没有出现,生产环境上才会出现。看过后告诉他是mysql strict mode(严格模式)导致。生产环境的mysql版本比较高,打开了相关配置。
5.6.6 版本后默认打开严格模式。
这其实是一个常见问题,和mysql 打交道时比较容易遇到。
一、查看sql-mode
select @@sql_mode
二、解决办法
方法1:修改sql_mode。
linux上找到my.cnf文件,window上找到my.ini文件。
修改 sql_mode赋值。
方法2:修改代码,增加条件判断和主动赋值。
因为不知道生产环境的配置,建议还是不要偷懒。
三、一些mysql 严格模式的选项
NO_ZERO_DATE 认为日期为0非法
STRICT_TRANS_TABLES 表示启用严格模式。例如把''传递给int字段非法。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)