JAVA操作MySQL tImestamp列值为0时抛出异常的处理
来源:互联网 发布:包头广电网络客服电话 编辑:程序博客网 时间:2024/06/06 00:34
JAVA连接MySQL数据库,在操作值为0的timestamp类型时不能正确的处理,而是默认抛出一个异常,就是所见的:java.sql.SQLException: Cannot convert value '0000-00-00 00:00:00' from column 7 to TIMESTAMP。这一问题在官方文档中有详细说明,详见如下链接:
http://bugs.mysql.com/bug.php?id=19274
http://dev.mysql.com/doc/refman/5.5/en/connector-j-installing-upgrading.html
在JDBC连接串中有一项属性:zeroDateTimeBehavior,可以用来配置出现这种情况时的处理策略,该属性有下列三个属性值:
l exception:默认值,即抛出SQL state [S1009]. Cannot convert value....的异常;
l convertToNull:将日期转换成NULL值;
l round:替换成最近的日期即0001-01-01;
因此对于这类异常,可以考虑通过修改连接串,附加zeroDateTimeBehavior=convertToNull属性的方式予以规避,例如:
jdbc:mysql://localhost:3306/mydbname?zeroDateTimeBehavior=convertToNull
从另一个层面讲,这类异常的触发也与timestamp赋值的操作有关,如果能够在设计阶段和记录写入阶段做好逻辑判断,避免写入'0000-00-00 00:00:00'这类值,那么也可以避免出现Cannot convert value '0000-00-00 00:00:00' from column N to TIMESTAMP的错误。
关于MySQL timestamp类型的说明,可以参考:MySQL数据库中的timestamp类型与时区
- JAVA操作MySQL tImestamp列值为0时抛出异常的处理
- 解决 mysql 在操作值为0的timestamp类型时不能正确的处理
- java错误异常处理时一定要处理抛出的异常
- JAVA操作MySQL tImestamp列值…
- 关于MYSQL数据库Timestamp类型为空抛异常问题的处理
- Java异常处理-----抛出处理
- Java异常处理-----抛出处理
- mysql抛出Value '0000-00-00' can not be represented as java.sql.Timestamp异常
- 关于Java抛出异常与处理异常的思考
- java 异常处理和异常抛出
- java异常处理之抛出异常
- Java异常抛出时的规定
- Java的构造函数抛出异常如何处理?
- 关于Java异常抛出和处理的思考
- python操作mysql 抛出Unread result found的处理方法
- mysql 触发器 trigger 中断操作 抛出异常
- 解决MySQL 在 Java 检索遇到timestamp空值时报异常的问题
- c抛出异常给java处理
- java中易出错的且常被面试的几点
- 在Linux下反编译Android .apk文件
- 音频编解码标准
- C# 伪随机数 随机数顺序排列 附带双色球机选程序
- Maven的使用经验(一)--安装maven插件
- JAVA操作MySQL tImestamp列值为0时抛出异常的处理
- 假设我有一些已经排序数字,比如1、3、4、5、8、9、13等等,求一个算法,能从其中找出两个数,让他们的和为某一个确定的数,如果第一次找到,就可以停止了。
- Linux 时间自动同步
- VC线程同步方法总结
- Swing下如何利用SWT调用IE
- Linux下的串口总线驱动(一)
- 某日三道C算法题目
- 输入框显示输入提示,点击消失。没输入直接提交,提交的输入框内容为空,不提交显示的提示文字
- Flex HBox从数据库动态加载背景图片