javaweb实验:JSP+JDBC综合实训__数据库记录的修改、删除

前言

本实验的目的是让学生掌握使用JSP和JDBC技术对数据库中的记录进行修改和删除的方法。实验内容包括以下几个部分:

  • 创建一个数据库表,存储学生的基本信息,如姓名、id、性别、e-mail等。
  • 编写一个JSP页面,显示数据库表中的所有记录,并提供修改和删除的链接。
  • 编写一个JSP页面,接收修改或删除的请求,并根据请求参数执行相应的SQL语句。
  • 编写一个JSP页面,显示操作结果,并提供返回链接。

通过本实验,学生可以了解JSP和JDBC的基本原理和用法,以及如何利用它们实现对数据库的增删改查操作。

实验目的

  1. 理解使用JSP的核心知识和JDBC API进行数据库中数据的修改和删除操作的原理,学会相关编程方法;
  2. 能够根据贯穿项目案例的实际应用需要,综合运用JSP+JDBC相关知识和技术,完成数据库的连接、增加、查询、修改和删除操作。

实验内容

编程实现后台的用户管理功能

【步骤1】在数据库db_news2019中建立后台管理员表t_manager。
(1)建立管理员表t_manager, 结构如图所示。
在这里插入图片描述
其中:各个属性列分别表示管理员登录ID(主键),管理员真实姓名,管理员登录密码。
(2)在管理员表t_manager中录入若干条记录。
【步骤2】实现后台用户管理功能。
(1)新建项目。
(2)为项目配置构建路径,添加Apache Tomcat Server(例如:Apache Tomcat 7.0或8.5)以及MySQL驱动JAR包(例如:mysql-connector-java-5.1.45-bin.jar)。
(3)确认项目根目录下的子目录WEB-INF中包含web.xml(如果没有该文件,可从Tomcat安装目录中复制)。
(4)参考新闻管理(增查改删)案例代码,编写如下5个页面,以实现后台用户管理(增查改删)功能。
queryAllUser.jsp: 用户管理主界面
addUSer.jsp和doAddUser.jsp:增加用户表单页面和数据库操作(插入用户)页面
doDeleteUser.jsp: 删除用户页面(执行数据库删除操作)
doUpdateUser.jsp和updateUser.jsp: 修改用户信息页面(含数据库修改操作)

实验原理或流程图

实验原理

使用JDBC访问数据库的流程:
(0)加载和注册数据库驱动程序
a. 将驱动包(例如:mysql-connector-java-5.1.45-bin.jar)导入到项目的构建路径;
b. 加载、注册驱动类:Class.forName(“com.mysql.jdbc.Driver”);
(1)连接数据库(获取连接对象)
String url =
“jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8”;
String user = “root”;
String password = “admin”;//假设根用户的密码为admin
Connection conn = DriverManager.getConnection(url, user, password);
(2)操作数据库(查,增、删、改)
a.创建数据库操作对象
b.执行SQL语句
c.获得并处理结果
如果使用Statement接口:
a. 创建数据库操作对象
Statement stmt = conn.createStatement();
b. 执行SQL语句
String sql = “…”; // 根据需要构造SQL语句(不能带参数占位符)
ResultSet rs = stmt.executeQuery(sql); // 对于查询操作
int row = stmt.executeUpdate(sql); // 对于更新操作(增、删、改)
c. 获得并处理结果
对于更新操作:
if( row > 0 ){// 向页面输出更新的行数 }
对于查询操作:
while(rs.next()){
// 通过rs.getXxx方法,获取当前行的各个字段的值

}
如果使用PreparedStatement接口:
a. 创建数据库操作对象
String sql = “…”; // 根据需要构造SQL语句(可以带参数占位符)
PreparedStatement pstmt = conn.prepareStatement(sql);
b. 执行SQL语句
// 通过pstmt.setXxx()方法对SQL语句中的各个参数赋值(传递参数值)

ResultSet rs = stmt.executeQuery(); // 对于查询操作
int row = stmt.executeUpdate(); // 对于更新操作(增、删、改)
c. 获得并处理结果
对于更新操作:
if( row > 0 ){// 向页面输出更新的行数 }
对于查询操作:
while(rs.next()){
// 通过rs.getXxx()方法,获取当前行的各个字段的值。

}
// 当然,也可以通过rs.updateXxx()方法,修改当前行某个字段的值。
(3)释放资源
rs.close();
stmt.close(); 或 pstmt.close();
conn.close();

流程图

在这里插入图片描述

实验过程

根据页面的跳转流程,写出源代码

Adduser

<%@ page contentType="text/html;charset=utf-8" language="java" %>
<html>
<head>
  <title>添加用户表单页面</title>
</head>
<body>
<form action="doAddUser.jsp" method="post">
  <table align="center" border="0">
    <tr>
      <td>登录ID:</td>
      <td><input type="text" name="id"></td>
    </tr>
    <tr>
      <td>真实姓名:</td>
      <td><input type="text" name="name"></td>
    </tr>
    <tr>
      <td>性别:</td>
      <td>
        <label><input type="radio" name="gender" value="男"></label>
        <label><input type="radio" name="gender" value="女"></label>
      </td>
    </tr>
    <tr>
      <td>E-Mail:</td>
      <td><input type="email" name="email"></td>
    </tr>
    <tr>
      <td>登录密码:</td>
      <td><input type="password" name="password"></td>
    </tr>
    <tr>
      <td colspan="2">
        <center>
          <input type="submit" value="添加用户">&nbsp;
          <input type="reset" value="重置">
        </center>
      </td>
    </tr>
  </table>
</form>
</body>
</html>

querAllUser

<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.PreparedStatement" %>
<%@ page import="java.sql.ResultSet" %>
<%@ page import="java.sql.DriverManager" %>
<%@ page contentType="text/html;charset=utf-8" language="java" %>
<html>
<head>
  <title>用户管理主界面</title>
</head>
<body>
<center>
  <h2>登录成功!欢迎[<%=session.getAttribute("mname")%>]进入后台管理!</h2>
  <hr>
  <a href="addUser.jsp">增加用户</a>&nbsp;&nbsp;
  <a href="mlogout.jsp">安全退出</a>
</center>
<%
  Connection conn = null;
  PreparedStatement stmt = null;
  //ResultSet rs = null;

  try {
    
    
     String url= DriverManager.getConnection("jdbc:mysql://hostname:port/db_news2019", "root", "12345678");
    Connection conn = DriverManager.getConnection(url,username,password);
    stmt=conn.prepareStatement("select * from t_user");
    String sql = "select * from t_user";
    ResultSet rs = stmt.executeQuery(sql);
    //rs=stmt.executeQuery();
    Object id,name,password,sex,email,regdate;
%>

<table align="center" border="1" cellspacing="0">
  <tr>
    <th>登录ID</th>
    <th>真实姓名</th>
    <th>登录密码</th>
    <th>性别</th>
    <th>E-Mail</th>
    <th>注册时间</th>
    <th>管理员操作</th>
  </tr>

  <%
    while(rs.next()) {
    
    
      id = rs.getObject("uid");
      name = rs.getObject("uname");
      password = rs.getObject("upassword");
      sex = rs.getObject("usex");
      email = rs.getObject("uemail");
      regdate = rs.getObject("uregdate");
  %>
  <tr>
    <td><%=id%></td>
    <td><%=name%></td>
    <td><%=password%></td>
    <td><%=sex%></td>
    <td><%=email%></td>
    <td><%=regdate%></td>
    <td>
      <a href="updateUser.jsp?id=<%=id%>&name=<%=name%>&password=<%=password%>&sex=<%=sex%>&email=<%=email%>">修改</a>&nbsp;
      <a href="doDeleteUser.jsp?id=<%=id%>">删除</a>
    </td>
  </tr>
  <%
      }
      rs.close();
      stmt.close();
      conn.close();
    } catch (Exception e) {
    
    
      out.print("查询失败!");
    }
  %>
</table>
</body>
</html>


doAddUser

<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.PreparedStatement" %>
<%@ page import="java.sql.ResultSet" %>
<%@ page import="java.sql.DriverManager" %>
<%@ page contentType="text/html;charset=utf-8" language="java" %>
<html>
<head>
  <title>用户管理主界面</title>
</head>
<body>
<center>
  <h2>登录成功!欢迎[<%=session.getAttribute("mname")%>]进入后台管理!</h2>
  <hr>
  <a href="addUser.jsp">增加用户</a>&nbsp;&nbsp;
  <a href="mlogout.jsp">安全退出</a>
</center>
<%
  Connection conn = null;
  PreparedStatement stmt = null;
  //ResultSet rs = null;

  try {
    
    
     String url= DriverManager.getConnection("jdbc:mysql://hostname:port/db_news2019", "root", "12345678");
    Connection conn = DriverManager.getConnection(url,username,password);
    stmt=conn.prepareStatement("select * from t_user");
    String sql = "select * from t_user";
    ResultSet rs = stmt.executeQuery(sql);
    //rs=stmt.executeQuery();
    Object id,name,password,sex,email,regdate;
%>

<table align="center" border="1" cellspacing="0">
  <tr>
    <th>登录ID</th>
    <th>真实姓名</th>
    <th>登录密码</th>
    <th>性别</th>
    <th>E-Mail</th>
    <th>注册时间</th>
    <th>管理员操作</th>
  </tr>

  <%
    while(rs.next()) {
    
    
      id = rs.getObject("uid");
      name = rs.getObject("uname");
      password = rs.getObject("upassword");
      sex = rs.getObject("usex");
      email = rs.getObject("uemail");
      regdate = rs.getObject("uregdate");
  %>
  <tr>
    <td><%=id%></td>
    <td><%=name%></td>
    <td><%=password%></td>
    <td><%=sex%></td>
    <td><%=email%></td>
    <td><%=regdate%></td>
    <td>
      <a href="updateUser.jsp?id=<%=id%>&name=<%=name%>&password=<%=password%>&sex=<%=sex%>&email=<%=email%>">修改</a>&nbsp;
      <a href="doDeleteUser.jsp?id=<%=id%>">删除</a>
    </td>
  </tr>
  <%
      }
      rs.close();
      stmt.close();
      conn.close();
    } catch (Exception e) {
    
    
      out.print("查询失败!");
    }
  %>
</table>
</body>
</html>


结果展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验结论

本实验通过JSP和JDBC技术实现了对数据库中的学生信息进行修改和删除的功能。实验过程中,首先创建了一个数据库和一个表,然后在JSP页面中编写了表单和链接,用于输入修改或删除的条件和数据。接着,在另一个JSP页面中,通过JDBC连接数据库,并根据表单或链接传递的参数,执行相应的SQL语句,完成对表的修改或删除操作。最后,在页面上显示操作结果和表的最新数据。本实验加深了对JSP和JDBC技术的理解和掌握,也提高了对数据库操作的能力和熟练度。

猜你喜欢

转载自blog.csdn.net/m0_72471315/article/details/130802210