0

JFormからmysqlデータベースに値を挿入したい。しかし、日付フィールドに値を挿入することはできません..このコードは、日付フィールドを除いて機能しています。誰かが私を助けることができます..

            String s1=txtUsername.getText();
            String s2=txtPassword.getText();
            String s3=txtName.getText();
            String s4=txtAddress.getText();
            String s5=txtContractEndDetails.getText();


            connection getcon = new connection();
            Connection conn;


    try{
        conn=getcon.creatConnection();

             String sql="insert into TravelGuide(username,password,name,address,contract_end_date)values(?,?,?,?,?)";

             PreparedStatement stmt = conn.prepareStatement(sql);
          java.sql.Date dtValue = java.sql.Date.valueOf(s5); 

           stmt.setString(1, s1);


          stmt.setString(2, s2);

          stmt.setString(3, s3);
           stmt.setString(4, s4);

        stmt.setDate(5, s5);

           stmt.executeUpdate();



        }


    catch(Exception ex){
        JOptionPane.showMessageDialog(PanelTG, ex.getMessage(),"Error Occured 123",2);
    }
4

5 に答える 5

0

文字列をオブジェクトに変換するには、 (例)java.util.Dateが必要です。DateFormatSimpleDateFormat

于 2012-04-14T15:32:23.903 に答える
0
public class Test {

    public static void main(String[] args){
        Date date = new Date();

        DateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        String newDate = simpleDateFormat.format(date);
        System.out.println("DateIn String datatype = "+newDate);

        System.out.println("DateIn Date datatype = "+java.sql.Date.valueOf(newDate));

    }
}
于 2015-12-25T13:34:10.843 に答える
0

そのためにMySQL DBを使用しているため、s5変数文字列をyyyy-mm-dd日付にフォーマットする必要があります。dateFormat を使用してフォーマットできます。または、s5 変数に「2000-06-30」のような文字列が含まれていることを確認してください

于 2012-04-14T15:38:12.487 に答える
0

を渡す必要がありjava.util.Dateます。aを使用してaDateから aを解析できます。StringSimpleDateFormat

コードは次のようになります。

String s5 = txtContractEndDetails.getText();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date contractEndDate = null;
try {
     contractEndDate = simpleDateFormat.parse(s5);
} catch (ParseException e) {
    // handle telling the user they have bad input
}
stmt.setDate(5, contractEndDate);

ノート:

  • ユーザーに適した日付形式を選択する必要があります。利用できるオプションの詳細については、javadocを参照してください。
  • 不正な入力の処理方法とコーディング方法を決定する必要があります (例外をスローするか、メッセージを表示するなど)。
  • s1スタイルの問題として、などの変数名は避けてくださいs2。これらは読みにくく、バグの原因となります: などの適切な名前を使用するnameaddress、インラインで使用します (つまり、それらを削除し、代わりにそれらを初期化したコードを直接使用します)。
于 2012-04-14T15:45:33.543 に答える