2014-10-17 56 views
0

我在我的网站上有一个反馈页面,其中包含name,emailcomments。这是我对JSP代码和我使用Apache Tomcat 7.0Oracle DB如何使用jsp插入日期

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. 插入日期到我的表

  2. 插入正确的西里尔字母的话我的表

谢谢

回答

0

谢谢大家的回答。我使用CURRENT_TIMESTAMP插入DATE从@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"); 
1

让oracle为你做而不是。

See this link for more info.

+0

这不正是我想要的以下行。为什么它不能使用java.util.Date()?但对我而言,无论如何插入DATE,我都会尝试您的优惠。谢谢! – olgacosta 2014-10-17 08:57:04

+0

@olgacosta你试过吗?它为你工作? – 2014-10-17 13:32:16

+0

是的,它很棒!谢谢! – olgacosta 2014-10-17 13:40:21

1

你应该调试代码,并检查是否Date对象的toString()由Oracle预期模式相匹配。如果你不想用Arvind的方式(我认为它实际上是一个好主意),那么你可以使用SimpleDateFormat来格式化你的日期。

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

+0

是的,准备好的声明是一个有效的建议 – 2014-10-17 09:01:30