Javaパネルを使用してユーザーの個人的な詳細を更新しようとしています。パネルにuser_id (自動生成された)、名前、生年月日。 問題は、Javaパネルの生年月日フィールドに何も入力せずに保存するときです。それは私に上記のエラーを与える。 私は、生年月日(日付データ型)フィールドに直接mysqlデータベースを使用してnullを挿入して検証しようとしました。エラーはありません。 なぜ私はjavaパネルを介して挿入するときにnull文字列を取っていませんが、直接mysqlを使用して挿入するときに取っています。com.mysql.jdbc.MysqlDataTruncation:データの切り捨て:不正な日付値:列 'Date_Of_Birth'の行1で
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`)
)
、例外が発生したコードの一部である:ここでperBeanは、テストケースのgui.In一つから値を取得JavaBeanです
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();
}
iがDATE_OF_BIRTHテキストボックスヌルを維持DBに格納中にエラーが発生しています。
私の再フレーミングされた質問をもう一度読むと分かりやすくなります。日付フィールドにはヌル値が許されます。 – ashima
@ashima投稿コードにnull値を挿入しようとしているのをどのように知っていますか? (空の文字列ではない) – nos
あなたが「試して」いれば、キャッチがあります。 – Brian