JAVA操作MySQL tImestamp列值…

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类型与时区
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java是一种面向对象的编程语言,由Sun Microsystems公司(现在是Oracle公司)于1995年首次发布。Java语言的设计目标是写一次,到处运行(Write Once, Run Anywhere),即一次编写的程序可以在不同的计算机平台上运行,而无需重新编写或修改。 Java是一种高级语言,它提供了许多功能和类库,使得开发者能够更容易地编写复杂的应用程序。它使用了一种自动内存管理机制,即垃圾回收,来帮助程序员管理内存。这样一来,开发者不再需要手动分配和释放内存,大大减少了内存泄漏等问题的可能性。 Java语言具有平台无关性,这意味着一旦一个Java程序被编译为字节码,它可以在任何支持Java虚拟机(JVM)的计算机上运行,而不管该计算机的硬件和操作系统是什么。这给程序开发和部署带来了便利性和灵活性。 Java语言还以其安全性和可靠性而闻名。Java提供了一些内置的安全功能,如类加载和访问控制机制,可以确保只有授权的代码才能被执行。此外,Java的强类型检查机制可以防止类型相关的错误。 当今,Java已经成为世界上最流行的编程语言之一。它被广泛应用于企业级软件开发、移动应用开发、云计算、游戏开发等各个领域。Java的广泛应用和强大的生态系统也为开发者提供了许多工具和框架来简化开发工作。 总之,Java语言具有平台无关性、安全性、可靠性和功能丰富的特点,使其成为一种广泛应用的高级编程语言。无论是对专业开发人员还是对初学者来说,学习和掌握Java都是非常有价值的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值