2013-05-09 27 views
0

我有以下問題:顯示/追蹤/刪除Mysql通過JSP頁面的行

我已經制作了一個在Apache Tomcat上運行的Web應用程序。

我使用Mysql數據庫作爲我的應用程序的後端數據庫。該應用程序提供了一個用於輸入行,更新和刪除它們的GUI

問題是,當我使用MySql數據庫接口(通過直接傳遞SQL查詢)在我的數據庫中插入新行時,我可以操縱我的JSp頁的行(刪除,選擇,更新)

但是,如果我在數據庫中輸入新行通過使用JSP頁面(JDBC連接),該行確實進入,但我無法刪除/選擇/更新任何列

不顯示錯誤。所以任何人都可以指出爲什麼會發生這種情況?以及如何解決這個問題?

感謝

Here is the code for the jdbc Connection I use to insert the row in the Mysql database. 


<%@page import="java.io.*"%> 
<%@ 
page import="java.sql.*" 
%> 

<% 

Connection connection = null; 
Statement st = null; 
ResultSet rs = null; 
%> 
<html> 
<head><link href="style.css" rel ="stylesheet" type="text/css"></head> 

<body bgcolor="white" > 

<div id="container"> 
<div id="header"> 
    <img src="logo.jpg"> 

    <div class ="horiztext"><p> Order Tracker</p></div> 
    </div> 

</div> 
    <br> 

    <img src="banner.jpg" width="1500 " height="5"><br> 
    <% if(session.getAttribute("username") !=null) 
{ 
%> 
    <div id="navbar"> 
    <ul> 
     <li><a href="newoder.jsp">New Order</a></li> 
     <li><a href="updateorder.jsp">Update Order</a></li> 
     <li><a href="trackorder.jsp">Track Order</a></li> 
     <li><a href="trackdelay.jsp">Track Delay</a></li> 
     <li><a href="vieworder.jsp">View Database</a></li> 
     <li><a href="delete.jsp">Delete Order</a></li> 
     <li><a href="logout.jsp">Logout</a></li> 
    </ul> 
    </div> 
    <br> 
<% 
String SNo=request.getParameter("Sno"); 
String ProductName=request.getParameter("ProductName"); 
String ProductType=request.getParameter("ProductType"); 
String Model=request.getParameter("Model"); 
String Make=request.getParameter("Make"); 
String LicenseVoucher=request.getParameter("LicenseVoucher"); 
String Location=request.getParameter("Location"); 



%> 
<br> 
    <div align="center"><font size="6" color="black"> 
    <br> 
<% 
try 
{ 

Class.forName("com.mysql.jdbc.Driver").newInstance(); 
connection=DriverManager.getConnection("jdbc:mysql://localhost:3307/test","root" 
,"root"); 
st = connection.createStatement(); 

String query="insert into inventory values 
(' "+SNo+" ',' "+ProductName+" ','"+ProductType+" ',' "+Model+" ',' "+Make+" ',' 
"+LicenseVoucher+" ','  "+Location+" ')"; 
    st.execute(query); 
    out.println("DATA INSERTED"); 


} 

    catch(Exception e) 
{ 
    out.println("DATA NOT INSERTED"); 
} 
%> 
</font></div> 
<% 
} 
else { %> 
you are not logged in click here to <a href="eric.jsp"><b>login</b></a> 

<% 
} %> 

</body> 
</html> 
+1

你能展示你使用的代碼嗎? – 2013-05-09 18:47:11

+0

'...當我進入一個新行...'進入?你的意思是插入或選擇? '問題是......我可以操縱......'WebApps的一個常見概念是對Datas的操縱,我不明白爲什麼這應該是一個問題!無論如何,我必須有創意才能理解你,你能否告訴我,如果你在任何連接到數據庫的程序中使用事務(如果事務沒有提交,數據將不會被更改)? – 2013-05-10 05:31:01

+0

是的,我用代碼更新了我的帖子。如果我直接從Mysql工作臺插入行,我可以從web應用程序中移植mysql數據庫的行(刪除/更新/選擇) 但是,如果我通過My​​sql數據庫中的Web應用程序(使用jdbc連接)插入行,我無法生成視圖(通過選擇)或刪除/更新從Web應用程序插入的行 請幫助:| Howeve – 2013-05-10 06:29:09

回答

0

使用了準備好的語句插入...似乎以某種方式解決問題:|

0

我發現從JSP操作SQL的最直接方式是使用tag library

<%@ page import="java.io.*,java.util.*,java.sql.*"%> 
<%@ page import="javax.servlet.http.*,javax.servlet.*" %> 
<%@ taglib prefix="sql" 
      uri="http://java.sun.com/jsp/jstl/sql" %> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 


<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver" 
    url="jdbc:mysql://localhost/TEST" 
    user="user_id" password="mypassword"/> 
<sql:query dataSource="${snapshot}" var="result"> 
SELECT * from Employees; 
</sql:query> 

<table border="1" width="100%"> 
<tr> 
<th>Emp ID</th> 
<th>First Name</th> 
<th>Last Name</th> 
<th>Age</th> 
</tr> 
<c:forEach var="row" items="${result.rows}"> 
<tr> 
<td><c:out value="${row.id}"/></td> 
<td><c:out value="${row.first}"/></td> 
<td><c:out value="${row.last}"/></td> 
<td><c:out value="${row.age}"/></td> 
</tr> 
</c:forEach> 
</table> 

<sql:update dataSource="${snapshot}" var="count"> 
    INSERT INTO Employees VALUES (104, 2, 'Nuha', 'Ali'); 
</sql:update> 

讓我知道你上車......

+0

感謝您對hd1的洞察力,但是我現在不熟悉標籤庫。你能看到我發佈的代碼並提出一些解決方案嗎? – 2013-05-10 06:58:13

+0

默認情況下,MySQL偵聽端口3306而不是330。 – hd1 2013-05-10 06:59:57

+0

是的,但我有目的地將其改爲3307。我不認爲這會導致問題。 – 2013-05-10 07:15:12