我試圖通過java面板更新用戶的個人詳細信息。面板有像user_id (自動生成),姓名,出生日期。 問題是當我在java面板中輸入任何內容到出生日期字段,然後保存它。它給了我上面提到的錯誤。 我試圖通過直接使用mysql數據庫插入null到出生日期(日期數據類型)字段來驗證它。它沒有提供任何錯誤。 爲什麼在我通過java面板插入時沒有采用空字符串,而是在直接使用mysql插入時採用空字符串。com.mysql.jdbc.MysqlDataTruncation:數據截斷:第1行'Date_Of_Birth'列的日期值不正確:''
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`)
)
在哪裏發生異常代碼的所述部分是:
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文本框空在存儲在數據庫時發生錯誤。
您可以再次閱讀我重新構建的問題以獲得更多清晰度。日期字段允許空值。 – ashima
@ashima你怎麼知道你嘗試在你的發佈代碼中插入一個空值? (而不是一個空字符串) – nos
你是'試試',你有沒有趕上......如果有錯誤,它應該會出錯。 – Brian