我的文本框名称event_date具有“日期”内容
<input style="width: 196px" id="f_date1" name="event_date"/>
如何将文本框的参数传递给servlet并在我的预准备语句中使用它。在我的数据库中,event_date列的数据类型为“date”。
我知道如何为String做这件事(如下所示),但我将如何在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);
答案 0 :(得分:2)
您可以使用java.text.SimpleDateFormat
将字符串解析为java.util.Date
对象。可以指定要解析的不同日期格式和区域设置。像这样的例子:
SimpleDateFormat format = new SimpleDateFormat("dd-MMM-yyyy");
Date date = format.parse(request.getParameter("event_date"));
然后,您可以将java.util.Date
转换为java.sql.Date
,以便在PreparedStatement中使用:
java.sql.Date sqlDate = new java.sql.Date(date.getTime());
PreparedStatement pst = connection.prepareStatement(sql);
pst.setDate(1, sqlDate);
最好在客户端对数据格式进行一些检查,或者在将数据格式发送到服务器端之前确保它符合某种日期格式,然后再解析它。