2014-07-08 18 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

相关问题