1

「日付」コンテンツを持つテキスト ボックス名 event_date があります。

<input style="width: 196px" id="f_date1" name="event_date"/>

テキストボックスのパラメーターをサーブレットに渡して、準備済みステートメントで使用するにはどうすればよいですか。私のデータベースでは、列 event_date のデータ型は「日付」です。

私は文字列(以下に示す)に対してそれを行う方法を知っていますが、日付でどのように行うのですか...

String event_date = request.getParameter("event_date");

  try {
  event_date2 = java.util.Timestamp.parse(event_date);
  Class.forName("org.postgresql.Driver");
  connection = DriverManager.getConnection(connectionURL, "mydb", "pass");

  String sql ="insert into prodtracker (event_date) values(?)";

  PreparedStatement pst = connection.prepareStatement(sql);


  pst.setString(1, event_date2);
4

1 に答える 1

2

文字列をオブジェクトjava.text.SimpleDateFormatに解析するために使用できます。java.util.Date解析する別の日付形式とロケールを指定することができます。このような例:

SimpleDateFormat format = new SimpleDateFormat("dd-MMM-yyyy");
Date date = format.parse(request.getParameter("event_date"));

次に、PreparedStatementで使用するためににjava.util.Date変換できます。java.sql.Date

java.sql.Date sqlDate = new java.sql.Date(date.getTime());
PreparedStatement pst = connection.prepareStatement(sql);
pst.setDate(1, sqlDate);

クライアント側で、またはサーバー側に送信されたときにデータ形式をチェックして、日付を解析する前に特定の日付形式に準拠していることを確認することをお勧めします。

于 2012-04-28T00:47:23.817 に答える