数据库有的日期是0000-00-00的日期,需要怎么才能显示?
"C:\Program Files\Java\jdk-11.0.7\bin\java.exe" "-javaagent:D:\English\IDEA\IntelliJ IDEA 2020.3.1\lib\idea_rt.jar=57141:D:\English\IDEA\IntelliJ IDEA 2020.3.1\bin" -Dfile.encoding=UTF-8 -classpath E:\IdeaProjects\imooc-jdbc-goods\out\production\imooc-jdbc-goods;E:\IdeaProjects\imooc-jdbc-goods\bin\mysql-connector-java-8.0.22.jar com.hui.sample.HumanResourceApplication
1--查询全部商品信息
2--新增商品
3--更新商品价格
4--删除商品
请输入选项:
1
java.sql.SQLException: Zero date value prohibited
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:99)
at com.mysql.cj.jdbc.result.ResultSetImpl.getDate(ResultSetImpl.java:751)
at com.mysql.cj.jdbc.result.ResultSetImpl.getDate(ResultSetImpl.java:765)
at com.hui.sample.command.SelectGoodsCommand.execute(SelectGoodsCommand.java:27)
at com.hui.sample.HumanResourceApplication.main(HumanResourceApplication.java:21)
Caused by: com.mysql.cj.exceptions.DataReadException: Zero date value prohibited
at com.mysql.cj.result.SqlDateValueFactory.localCreateFromDate(SqlDateValueFactory.java:77)
at com.mysql.cj.result.SqlDateValueFactory.localCreateFromDate(SqlDateValueFactory.java:50)
at com.mysql.cj.result.AbstractDateTimeValueFactory.createFromDate(AbstractDateTimeValueFactory.java:67)
at com.mysql.cj.protocol.a.MysqlTextValueDecoder.decodeDate(MysqlTextValueDecoder.java:73)
at com.mysql.cj.protocol.result.AbstractResultsetRow.decodeAndCreateReturnValue(AbstractResultsetRow.java:90)
at com.mysql.cj.protocol.result.AbstractResultsetRow.getValueFromBytes(AbstractResultsetRow.java:241)
at com.mysql.cj.protocol.a.result.ByteArrayRow.getValue(ByteArrayRow.java:91)
... 4 more
Process finished with exit code 0
正在回答
同学你好,JAVA连接MySQL数据库,在操作值为0的timestamp类型时不能正确的处理,而是默认抛出一个异常,所以在JDBC连接串中有一项属性:zeroDateTimeBehavior,可以用来配置出现这种情况时的处理策略,该属性有下列三个属性值:
exception:默认值,即抛出SQL state [S1009]. Cannot convert value....的异常;
convertToNull:将日期转换成NULL值;
round:替换成最近的日期,即0001-01-01;
如上所示,zeroDateTimeBehavior就是针对日期为0时的配置。
祝学习愉快!
- 参与学习 人
- 提交作业 9393 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星