博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JDBC & MySql - datetime类型字段的NULL值处理
阅读量:6821 次
发布时间:2019-06-26

本文共 726 字,大约阅读时间需要 2 分钟。

hot3.png

当使用Java在操作MySql时,如果你的MySql表中存在datetime类型的字段,相信你有可能会遇到这种情况,0值的datetime字段,显示在MySql里显示为“0000-00-00 00:00:00”,恰恰是这个值,当赋值给实体类对应的属性Timestamp类型时,会提示错误“Cannot convert value '0000-00-00 00:00:00' from column N to TIMESTAMP”。一般这种情况我们更希望数据库驱动能帮我们这个特殊的家伙自动地转为null。

办法是有的,在我们配置数据库连接时的配置属性中,有一项“url”,通常情况下,写为“jdbc:mysql://192.168.137.9:3306/db_new_teaching”,为了解决上述的问题,在这个字符串后面追加一个配置“zeroDateTimeBehavior”,最终写为“jdbc:mysql://192.168.137.9:3306/db_new_teaching?zeroDateTimeBehavior=convertToNull”即可。

zeroDateTimeBehavior有三个值,分别代表不同的处理策略,如下所示。

  • exception:抛出异常,这个是默认值。
  • convertToNull:将日期转换成NULL值。
  • round:替换成最近的日期即0001-01-01。

当然,还有更直接可观的做法,当我们使用Timestamp属性存入数据库之前,最好可以检查并避免0值的插入,自然而然也就不会出现上述的转换异常问题了。

转载于:https://my.oschina.net/angerbaby/blog/398378

你可能感兴趣的文章
20151124001 关闭C#主窗体弹出是否关闭对话框
查看>>
java 判断元素是否在数组内
查看>>
java。equal()和== 的区别
查看>>
jsp九大内置对象
查看>>
leetcode34. 在排序数组中查找元素的第一个和最后一个位置
查看>>
扩展欧几里德算法~简单
查看>>
flex shareObject对象详解
查看>>
介绍一下Mojolicious的DOM选择器Mojo::DOM和它的Mojo::UserAgent(比较Web::Scraper)
查看>>
【转】Spring源码编译
查看>>
LVDS,MIPI,EDP
查看>>
深入理解DOM节点类型第二篇——文本节点Text
查看>>
poj2184
查看>>
找规律 Codeforces Round #309 (Div. 2) A. Kyoya and Photobooks
查看>>
二分搜索 HDOJ 2675 Equation Again
查看>>
oracle执行先决条件检查失败的解决方法
查看>>
74.资金管理-员工工资配置 extjs 页面
查看>>
Spring MVC文件上传
查看>>
2.最详细的WSDD配置文件注释
查看>>
struts2-----新建项目
查看>>
tomcat启动startup.bat一闪而过
查看>>