话不多说,直接上图
一.思路
运用<a>标签将数据送到目标页面,实现对一行的删除。
语法:
1:form表单提交到的目标页面
2:输入主码的input的id
3:获取主码的值
<a href="1?2=<%=3%>">删除</a>
例子:<a href="删除图书.jsp?bianhao=<%=rs.getString("图书编号") %>">删除</a>
二.实战例子
下面的代码是获取library数据库中books表的数据,用于显示上图所示表格,数据库及表大家可以自己创建,下面代码中我创建的表属性名和<th>标签里的值是一样的。主键是图书编号。
表格.jsp
<%@ page language="java" import="java.sql.Connection" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="表格样式.css">
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<div id="div1">
<table>
<caption>图书资源表</caption>
<tr>
<th>图书编号</th>
<th>图书名</th>
<th>库存量</th>
<th>图书位置</th>
<th>操作</th>
</tr>
<%
String driverClass="com.mysql.jdbc.Driver";
String url="jdbc:mysql://localhost:3306/library";
String user="root";
String password="123456";
Connection conn;
try{
Class.forName(driverClass);
conn=DriverManager.getConnection(url, user, password);
Statement stmt=conn.createStatement();
String sql="select * from books";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()){
%>
<tr>
<td id="accept"><%=rs.getString("图书编号") %></td>
<td><%=rs.getString("图书名") %></td>
<td><%=rs.getString("库存量") %></td>
<td><%=rs.getString("图书位置") %></td>
<td colspan="2"><a href="删除图书.jsp?bianhao=<%=rs.getString("图书编号") %>">删除</a></td>
<td><a href="图书form.jsp">添加</a></td>
</tr>
<%
}
}catch (Exception ex){
System.out.printf("访问失败");
ex.printStackTrace();
}
%>
</table>
</div>
</body>
</html>
表格样式.css
@charset "UTF-8";
body {
background-image: url(imge/2.jpg);
background-size: cover;
}
#accept {
text-align: center;
background-color: #CCDDFF;
border: none;
border-radius: 30px 20px;
width: 60px;
margin-left: 20px;
}
table {
margin-top: 30px;
font-family: STKaiti;
border-collapse: collapse;
border: 1px dashed white;
}
tr, td,th {
border: 1px dotted white;
height: 30px;
text-align: center;
}
table tr:hover {
background-color: #CCDDFF;
}
#div1{
margin-left:300px;
margin-top:200px;
}
1)删除功能实现
提交到的目标删除页面
删除图书.jsp
<%@ page language="java" import="java.sql.*" pageEncoding="UTF-8"%>
<html>
<body>
<%
request.setCharacterEncoding("UTF-8");
//获取值
String bianhao=request.getParameter("bianhao");
String bookname=request.getParameter("bookname");
String kucunliang=request.getParameter("kucunliang");
String location=request.getParameter("location");
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/library","root","123456");
//删除数据
String sql="delete from books where 图书编号=?";
PreparedStatement p=conn.prepareStatement(sql);
p.setString(1,bianhao);
int i=p.executeUpdate();
out.println("成功删除!");
p.close();
conn.close();
%>
<a href='表格.jsp'>点我查看图书资源表</a>
</body>
</html>
/****************如果只要实现删除操作,以下代码不需要写了*****************************/
2)添加图书功能
图书form.jsp
<%@ page language="java" import="java.sql.*" pageEncoding="UTF-8"%>
<html>
<head>
<link type="text/css" rel="stylesheet" href="form表单.css">
</head>
<body>
<div>
<form action="添加图书.jsp" method="get">
<h1>图书编号</h1>
<input required="required" type="text" name="bianhao" id="bianhao" /><br/>
<h1>图书名</h1>
<input type="text" name="bookname" id="bookname" /><br/>
<h1>库存量</h1>
<input type="text" name="kucunliang" id="kucunliang" /><br/>
<h1>图书位置</h1>
<input type="text" name="location" id="location" /><br/>
<h1>提交:</h1>
<input type="submit" value="添加"/>
<input name="" type="reset" value="清空" />
</form>
</div>
</body>
</html>
添加图书.jsp
<%@ page language="java" import="java.sql.*" pageEncoding="UTF-8"%>
<html>
<body>
<%
request.setCharacterEncoding("UTF-8");
//获取值
String bianhao=request.getParameter("bianhao");
String bookname=request.getParameter("bookname");
String kucunliang=request.getParameter("kucunliang");
String location=request.getParameter("location");
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/library","root","123456");
//添加数据
String sql="insert into books (图书编号,图书名,库存量,图书位置) values(?,?,?,?)";
PreparedStatement p=conn.prepareStatement(sql);
p.setString(1,bianhao);
p.setString(2,bookname);
p.setString(3,kucunliang);
p.setString(4,location);
int i=p.executeUpdate();
out.println("成功添加!");
p.close();
conn.close();
%>
<a href='表格.jsp'>点我查看图书资源表</a>
</body>
</html>
要点解析:request.getParameter(" ")用来获取表格中的数据,在删除操作中引号里面的值随便写,但在添加时,引号里面的值是form表单中input的id值。
一段可以不看的题外话
最后,一个小小的瑕疵就是我不清楚为什么上面的表格colspan没有成功合并列,如果大家有会的,欢迎在评论区留言或私聊我哟,谢谢咯,爱你们哟。