首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >com.mysql.jdbc.MysqlDataTruncation:数据截断:第1行的列'Date_Of_Birth‘的日期值'’不正确

com.mysql.jdbc.MysqlDataTruncation:数据截断:第1行的列'Date_Of_Birth‘的日期值'’不正确
EN

Stack Overflow用户
提问于 2011-07-11 23:04:04
回答 4查看 12.1K关注 0票数 1

我正在尝试通过java panel.Panel更新用户的个人详细信息,其中包含user_id(自动生成)、姓名、出生日期等字段。问题是当我没有在java面板的出生日期字段中输入任何内容,然后保存它。它给出了上面提到的错误。我尝试通过直接使用mysql database.There在出生日期(日期数据类型)字段中插入null来验证它,没有给出任何错误。为什么我通过java面板插入时不带空字符串,而直接用mysql插入时却带空串。

代码语言:javascript
复制
CREATE TABLE `userpersonaldetail` (
  `User_Id` int(10) unsigned NOT NULL auto_increment,
  `Name` varchar(45) default NULL,
  `Date_Of_Birth` date default NULL,
  `Address` varchar(300) default NULL,
  `Phone` varchar(20) default NULL,
  `Mobile` varchar(20) default NULL,
  `Email` varchar(50) default NULL,
  PRIMARY KEY  (`User_Id`),
  CONSTRAINT `FK_userpersonaldetail_1` FOREIGN KEY (`User_Id`) REFERENCES `usermaster` (`User_Id`)
) 

出现异常的代码部分是:

代码语言:javascript
复制
  try
     {
        con=(Connection) DBConnection.getConnection();
        pstmt=(PreparedStatement) con.prepareStatement("Update userpersonaldetail set "+
               "name=?,date_of_birth=?,address=?,phone=?,mobile=?,email=? where user_id=?");

            pstmt.setInt(7,perBean.getUserId());
            pstmt.setString(1,perBean.getName());
            pstmt.setString(2,perBean.getDateOfBirth());
            pstmt.setString(3,perBean.getAddress());
            pstmt.setString(4,perBean.getPhone());
            pstmt.setString(5,perBean.getMobile());
            pstmt.setString(6,perBean.getEmail());

            int i=pstmt.executeUpdate();
 }

这里的perBean是从gui.In中检索值的javaBean,这是我将date_of_birth文本框保留为空的测试用例之一,这在存储到DB时给出了错误。

EN

回答 4

Stack Overflow用户

发布于 2011-07-11 23:07:54

我最初的猜测是该字段已定义为“非空”,这意味着它将强制您输入一个值……

如果您要对表执行mysql转储(或在某些工具中查看它),您可能会发现它被定义为:

代码语言:javascript
复制
`someDT` datetime NOT NULL
票数 1
EN

Stack Overflow用户

发布于 2015-02-04 22:31:15

我用最新版本替换了旧版本的my-sql-connector jar (可以在服务器的lib文件夹中找到)。这解决了我的问题。

票数 1
EN

Stack Overflow用户

发布于 2011-07-12 16:27:39

啊,我明白了,你不能插入'‘作为日期。你需要传递一个日期。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6652213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档