如何使用jsp插入DATE

时间:2014-10-17 08:35:52

标签: java oracle jsp date cyrillic

我的网站上有一个反馈页面,其中包含nameemailcomments。以下是JSP上的代码,我正在使用Apache Tomcat 7.0Oracle DB

String query = "Insert into t_comments(name, email, comments) values('"
                                + realname
                                + "','"
                                + email
                                + "','"
                                + comments+"')";

这很有效。但我决定将DATEC列(数据类型DATE)添加到我的表t_comments。所以我的查询看起来应该是

String query = "Insert into t_comments(name, email, comments,datec) values('"
                                + realname
                                + "','"
                                + email
                                + "','"
                                + comments
                                + "',"
                                + "TO_DATE('"
                                + new java.util.Date()
                                + "', 'dd/mm/yyyy hh24:mi:ss'))";

这不起作用。

ORA-01858: a non-numeric character was found where a numeric was expected

也许我错误地将DATE输入到我的表中。我还有另一个问题。 namecomments位于西里尔语中。当它们插入表中时,它们会因不同的编码而显示不正确。我在JSP

中有这一行
<%@ page language='java' contentType='text/html; charset=UTF-8' pageEncoding='UTF-8'%>

请帮助我解决我的两个问题

  1. 将DATE插入我的表格

  2. 将西里尔字样插入我的表格

  3. 由于

3 个答案:

答案 0 :(得分:1)

让oracle为你做这件事。

String query = "Insert into t_comments(name, email, comments,datec) values('"
                                + realname
                                + "','"
                                + email
                                + "','"
                                + comments
                                + "', CURRENT_TIMESTAMP)";

See this link for more info.

答案 1 :(得分:1)

您应该调试代码并检查Date对象toString()是否与Oracle期望的模式匹配。

潜在地,如果你不想以Arvind的方式进行(我认为这实际上是个好主意),你可以使用SimpleDateFormat格式化你的日期。

您还应该考虑使用PreparedStatement而不是使用字符串连接来构建语句。

答案 2 :(得分:0)

我感谢大家的回答。我使用CURRENT_TIMESTAMPDATE从@Arvind Sridharan插入我的桌子,对于西里尔字符,我在jsp中添加了以下几行

request.setCharacterEncoding("UTF-8");
realname = new String(realname.getBytes("ISO-8859-1"),"UTF8");
comments = new String(comments.getBytes("ISO-8859-1"),"UTF8");