0

私は次の問題を抱えています:

Apache Tomcat で動作する Web アプリケーションを作成しました。

アプリケーションのバックエンド データベースとして Mysql データベースを使用しています。アプリケーションは、行の入力、更新、および削除のための GUI を提供するだけです。

問題は、MySql Database Interface を使用してデータベースに新しい行を挿入すると (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>
4

2 に答える 2

0

JSP から SQL を操作する最も簡単な方法は、タグ ライブラリを使用することです。

<%@ 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>

乗り方教えて...

于 2013-05-10T06:36:40.793 に答える