gpt4 book ai didi

java - 如何在 JSP 的 derby 数据库中插入和删除值? [3]

转载 作者:行者123 更新时间:2023-11-28 23:15:17 25 4
gpt4 key购买 nike

历史: History I. History II.

所以问题还是来了。如果我选择某人并按下删除按钮,而不是从数据库中删除,否则会创建一个新的空记录。

client.java:

public class client implements DatabaseConnection{

private static Connection conn = null;

private static void createConnection(){
try {
conn = DriverManager.getConnection(URL, USER, PASSWORD);
} catch (SQLException ex) {
Logger.getLogger(client.class.getName()).log(Level.SEVERE, null, ex);
}
}

private static void closeConnection(){
if (conn != null){
try {
conn.close();
} catch (SQLException ex) {
Logger.getLogger(client.class.getName()).log(Level.SEVERE, null, ex);
}
}
}

public List clientList(){
createConnection();
List list=new ArrayList();
try {
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("SELECT * FROM customer");
while(rs.next()){
**list.add(rs.getString("ID"));**
list.add(rs.getString("CNAME"));
list.add(rs.getString("ADDRESS"));
list.add(rs.getString("PHONENUMBER"));
}
stmt.close();
} catch (Exception e) {
e.printStackTrace(System.err);
}
return list;
}

public void newClient(String name, String address, String phoneNumber)
throws SQLException{
PreparedStatement ps = null;
try {
createConnection();
String insert="INSERT INTO CUSTOMER(CNAME,ADDRESS, PHONENUMBER)
VALUES(?,?,?)";
ps=conn.prepareStatement(insert);
ps.setString(1, name);
ps.setString(2, address);
ps.setString(3, phoneNumber);
ps.executeUpdate();
ps.close();
} catch (Exception e) {
e.printStackTrace(System.err);
}
finally {
ps.close();
closeConnection();
}
}
public void deleteClient(String ID){
try {
createConnection();
String delete="DELETE FROM CUSTOMER WHERE ID=?";
PreparedStatement ps=conn.prepareStatement(delete);
ps.setString(1, ID);
ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace(System.err);
}
**finally {
closeConnection();
}**
}

}

index.jsp:

<jsp:useBean id="client" class="database.client" scope="page" />
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body bgcolor="lightgrey">
<%
String ID=request.getParameter("ID");
String NAME=request.getParameter("CNAME");
String ADDRESS=request.getParameter("ADDRESS");
String PHONENUMBER=request.getParameter("PHONENUMBER");
%>
<form method="post" action="">
<table border="0" align="left">
<th colspan="2" align="center" style="color: brown">Field</th>
<tr>
<td>Name:</td>
<td><input type="text" name="CNAME" style="background-
color:beige"/></td>
</tr>
<tr>
<td>Address?</td>
<td><input type="text" name="ADDRESS" style="background-
color:beige"/></td>
</tr>
<tr>
<td>PhoneNumber:</td>
<td><input type="text" name="PHONENUMBER" style="background-
color:beige"/></td>
</tr>
<input type="submit" name="OK" onclick="
<%
if(NAME!=null && ADDRESS!=null && PHONENUMBER!=null){
client.newClient(NAME, ADDRESS, PHONENUMBER);
}
%>" value="OK"/>
<input type="submit" name="Cancel" onclick="
<%
//nothing
%>" value="Cancel"/>
<input type="submit" name="Delete" onclick="
<%client.deleteClient(ID);%>" value="Delete"/>
</table>
<table border="2">
<th colspan="4" align="center" bgcolor="orange">Clients</th>
<tr bgcolor="silver" align="center">
<td>&nbsp;</td>
**<td>ID</td>**
<td>Name</td>
<td>Address</td>
<td>PhoneNumber</td>
</tr>
<%
List list=client.clientList();
Iterator it=list.iterator();

while(it.hasNext()){
out.print("<tr bgcolor='lightgreen'>");
out.print("<td>");
**ID**=(String)it.next();
out.print("<input type='radio' name='ID' value="+**ID**+"/>");
out.print("</td>");
out.print("<td>");
out.print(**ID**);
out.print("</td>");
for (int i = 0; i < **3**; i++) {
out.print("<td>");
out.print(it.next());
out.print("</td>");
}
out.print("</tr>");

}
%>
</table>
</form>
</body>
</html>

最佳答案

只需创建一个新的 Servlet(删除 Servlet)并在 url 中传递 ID 并在新的 jsp 页面中处理它...您可以像这样更改代码:

索引 JSP:

<a href="DeleteServlet?id=<%=Integer.toString(person.getID())%>">Delete</a>

删除 Servlet : 已更新

@WebServlet(name = "DeleteServlet", urlPatterns = {"/DeleteServlet"})
public class DeleteServlet extends HttpServlet {

/**
*
*/
private static final long serialVersionUID = 1L;
private static final Logger LOGGER = Logger.getLogger(CurdOperationsImpl.class.getName());

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String ID = request.getParameter("id");


int id = Integer.parseInt(PersonId);

deleteClient(id); // add your own code

out.println("<h2 style='color: green'>Person Deleted Sucessfully.</h2>");
response.sendRedirect("index.jsp");
}else {

}
}

奖励:得到这个我丑陋的 Servlet-JSP-Mysql 项目可以使用了 Github link希望对您有所帮助。

关于java - 如何在 JSP 的 derby 数据库中插入和删除值? [3],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44163730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com