JDBC数据库访问与JavaBean

一、增加新学号功能实现

  1. 用户点击“添加新学号”链接,页面跳转到addNum.jsp页面,在该页面中输入学号和名字信息,点击确认按钮,跳转到doAddNum.jsp页面;

  1. doAddNum.jsp页面获取所输入的学号信息,使用JDBC将信息添加到数据表java2022;

  1. 添加完成跳转到showAllStudents.jsp页面。

//showAllStudents.jsp

<%@ page import="java.sql.*" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>显示所有学生信息</title>
</head>
<body>
<a href="addNum.jsp">添加学号</a>
<%
    //1.加载驱动程序
    Class.forName("com.mysql.jdbc.Driver");
    //2.建立与数据库的连接
    String url = "jdbc:mysql://localhost:3306/java2022";
    Connection conn = DriverManager.getConnection(url, "root", "root");
    //3.创建命令对象
    Statement st=conn.createStatement();
    //4.执行SQL语句
    String sql = "SELECT * FROM java2022";
    ResultSet rs=st.executeQuery(sql);
    //5.获取并输出查询结果
    out.println("<table border='1'>");
    out.println("<tr><td>学号num</td><td>姓名name</td>><td>编辑</td></tr>");
    while (rs.next()){
        out.println("<tr>");
        out.println("<td>"+rs.getString("num")+"</td>");
        out.println("<td>"+rs.getString("name")+"</td>");
        out.println("<td>");
        out.println("<a href='updateNum.jsp?num="+rs.getString("num")+"'>修改</a>");
        out.println("<a href='deleteNum.jsp?num="+rs.getString("num")+"'>删除</a>");
        out.println("</td>");
        out.println("</tr>");
    }
    out.println("</table>");
    //6.释放资源
    rs.close();    st.close();    conn.close();
%>
</body>
</html>

//addNum.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>添加新学号</title>
</head>
<body>
    <form action="doAddNum.jsp">
        学号:<input type="text" name="num">
        姓名:<input type="text" name="name">
        <input type="submit" value="提交">
    </form>
</body>
</html>

//doAddNum.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <%
        String num = request.getParameter("num");
        String name = request.getParameter("name");
        Class.forName("com.mysql.cj.jdbc.Driver");
        String url = "jdbc:mysql://localhost:3306/javaee";
        Connection conn = DriverManager.getConnection(url, "root", "123456");
        String sql = "insert into java2022(num,name) values(?,?)";
        PreparedStatement pst = conn.prepareStatement(sql);
        pst.setString(1, num);
        pst.setString(2, name);
        pst.executeUpdate();
        response.sendRedirect("showAllStudents.jsp");
        ps.close();
conn.close();

    %>
</body>
</html>

二、根据学号num修改学生名字name实现

1.用户点击“编辑”链接,跳转到updateName.jsp文件,在该页面中显示并可修改指定num的名字信息,点击提交按钮,跳转到doUpdateName.jsp文件;

2.doUpdateName.jsp文件获取updateName.jsp文件中所输入的名字,根据学号修改学生名字;

3.修改完成跳转到showAllStudents.jsp页面。

//updateName.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>修改</title>
</head>
<body>
    <%
        String num = request.getParameter("num");
    %>
    <form action="doUpdateName.jsp">
        学号:<input type="text" name="num" value="<%=num%>" readonly>
        姓名:<input type="text" name="name">
        <input type="submit" value="修改">
    </form>
</body>
</html>

//doUpdateName.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <%
        String num = request.getParameter("num");
        String name = request.getParameter("name");
        Class.forName("com.mysql.cj.jdbc.Driver");
        String url = "jdbc:mysql://localhost:3306/javaee";
        Connection conn = DriverManager.getConnection(url, "root", "123456");
        String sql = "update java2022 set name=? where num=?";
        PreparedStatement ps = conn.prepareStatement(sql);
        ps.setString(1, name);
        ps.setString(2, num);
        ps.executeUpdate();
        response.sendRedirect("showAllStudents.jsp");
        ps.close();
        conn.close();
    %>
</body>
</html>

三、根据学号num删除学生信息功能实现

1.用户点击“删除”链接,页面跳转到deleteNum.jsp文件,在该页面中获取学号num,根据学号num删除学生信息;

2.删除完成跳转到showAllStudents.jsp页面。

//deleteNum.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>删除学生信息</title>
</head>
<body>
    <%
        String num = request.getParameter("num");
        Class.forName("com.mysql.cj.jdbc.Driver");
        String url = "jdbc:mysql://localhost:3306/javaee";
        Connection conn = DriverManager.getConnection(url, "root", "123456");
        String sql = "delete from java2022 where num=?";
        PreparedStatement pst = conn.prepareStatement(sql);
        pst.setString(1, num);
        pst.executeUpdate();
        response.sendRedirect("showAllStudents.jsp");
    ps.close();
conn.close();
    
    %>
</body>
</html>

四、JavaBean的创建,能够使用“代码法”和“标签法”两种方式建立JavaBean实例对象、设置属性和获取属性:

1) 在src下的pojo包中创建JavaBean,文件名为Student.java,具体内容如下:

  • 成员变量:

num //学号,String类型,私有权限

name //姓名,String类型,私有权限

  • 成员方法:

每一个属性对应的getter和setter方法,均为公有权限

2) 新建立一个javabean.jsp页面,用“代码法”和“标签法”创建JavaBean实例,设置、获取属性。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<jsp:useBean id="stu1" class="com.example.lab03.beans.Student">
    <jsp:setProperty name="stu1" property="num" value="0123"/>
    <jsp:setProperty name="stu1" property="name" value="张三"/>
    <jsp:getProperty name="stu1" property="num"/>
    <jsp:getProperty name="stu1" property="name"/>
</jsp:useBean>
<%
    Student stu2 = new Student();
    stu2.setNum("0456");
    stu2.setName("李四");
    out.print("<br>" + stu2.getNum() + stu2.getName());
%>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/weixin_47940048/article/details/129758665