2014-07-08 42 views
0

我有問題可以將其他用戶的數據插入數據庫中的表中。這只是第一次插入成功。在他/她的數據中存在第二個用戶密鑰後,它失敗了。我有這樣的代碼:將不同的用戶數據插入jsp中的數據庫表中

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<tr height=20% > 
<td colspan="1" ><img src="appbanner.png" width=100% height=20%></td> 
     </tr> 
<title>Insert title here</title> 
</head> 
<body bgcolor="#D8CEF6" height="150"> 
    <h1>Create Task : </h1> 
    <form name="createMemo" method="post" action="memoback.jsp"> 
     <pre> 

     Your Memo Number : <input type ="text" name="number" size="30"> 
     Enter Memo Text  : <input type ="text" name="memotext" size="30" style="width:500px" style ="height:500px"><br> 


     <input type="submit" name="Submit" value="Create Memo" /> 
     <input type="reset" name="Reset" value="Reset" /> 
     </pre> 


    </form> 
</body> 
</html> 

在我的後端,本人用JSP也插入我的代碼:

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<%@ page import="java.sql.*" %> 
<%@ page import="java.io.*" %> 

<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>Create Task Page</title> 
    </head> 
    <body> 
     <% 
     String memonumber = request.getParameter("number"); 
     String memotext = request.getParameter("memotext"); 
     //String duedate = request.getParameter("date"); 
     String connectionURL = "jdbc:derby://localhost:1527/db"; 
     Connection connection = null; 
     Statement statement = null; 
     try{ 
     Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance(); 
     connection = DriverManager.getConnection(connectionURL,"db","db"); 
     statement = connection.createStatement(); 
     String SQL = "INSERT INTO MEMO(memoid,memotext,uname) VALUES ('"+memonumber+"','"+memotext+"','"+session.getAttribute("susername")+"')"; 
     statement.executeUpdate(SQL); 
     response.sendRedirect("Home.jsp"); 
     %> 
     Table is created successfully. 
     <% 
     } 
     catch(Exception ex){ 
     ex.printStackTrace(); 
     } 

     %> 

    </body> 
</html> 

在我的數據庫表中,我有列memoid,memotext和UNAME。

+0

它會拋出任何異常嗎? – user75ponic

+0

不,我點擊「創建備忘錄」按鈕後將值傳遞給後端,我的瀏覽器返回空白頁面。並且當我檢查我的數據庫時沒有插入任何數據。 –

+0

我可以通過輸入sql語句在數據庫中插入數據,但我想讓用戶在系統中自行添加。 –

回答

0

我可以插入通過進入SQL語句在數據庫中的數據,但我想,讓用戶自己添加系統

都假定用戶具有數據庫表DML操作的權限。

雖然在JSP編寫Java代碼是非常氣餒,修改try catch塊作爲暫時

try{ 
    ..... 
    ..... 
} 
catch(SQLException ex){ 
    System.out.println("exception "+ex.getMessage()); 
    ex.printStackTrace(); 
} 
finally{ 
    statement.close(); 
    connection.close(); 
} 

註釋掉response.sendRedirect("Home.jsp");

+0

@Plopan,這是工作。看起來像我沒有把關閉();.我是編程新手,會嘗試使用servlet來完成它。無論如何非常感謝。 –

+0

@raymond_wmt不知道什麼可能已經解決了這個問題,除非你提供了更多的信息,但當你使用'Connection'或'Statement'時'close();'是必須的。很高興知道你的問題已經解決。 – user75ponic

相關問題