2014-10-17 72 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