用jsp实现删除数据库表中的一行

 

话不多说,直接上图

381cb6e458aa4e93a03366ab9a7fbd7c.jpeg

一.思路

运用<a>标签将数据送到目标页面,实现对一行的删除。

语法:

1:form表单提交到的目标页面

2:输入主码的input的id

3:获取主码的值

<a href="12=<%=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没有成功合并列,如果大家有会的,欢迎在评论区留言或私聊我哟,谢谢咯,爱你们哟。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值