利用jdbc+jsp实现,文件结构如下,关于jdbc的导入以及javaweb的创建请参考博客https://www.cnblogs.com/raidenmei/p/9919249.html
第一 实现学生的添加(注册)
这里并没有跳转的要求,所以直接在一个页面实现login.jsp
<%@ page contentType="text/html; charset=utf-8" language="java" pageEncoding="utf-8" errorPage=""%> <%@ page import="java.sql.*" %> <head> <title>注册</title> </head> <body> <form id="form" method="post"> 学号:<br /> <input type="text" name="id"><hr /> 姓名: <br /> <input type="text" name="name"><hr /> 年龄: <br /> <input type="text" name="age"><hr /> 学号:<br /> <input type="text" name="id1"><hr /> 姓名: <br /> <input type="text" name="name1"><hr /> 年龄: <br /> <input type="text" name="age1"><hr /> 学号:<br /> <input type="text" name="id1"><hr /> 姓名: <br /> <input type="text" name="name1"><hr /> 年龄: <br /> <input type="text" name="age1"><hr /> <input type="submit" value="提交"> <input type="reset" value="重置"> </form> <% //参数获取 request.setCharacterEncoding("utf-8"); String id = request.getParameter("id"); String name = request.getParameter("name"); String age = request.getParameter("age"); String id1 = request.getParameter("id1"); String name1 = request.getParameter("name1"); String age1 = request.getParameter("age1"); String id2 = request.getParameter("id2"); String name2 = request.getParameter("name2"); String age2 = request.getParameter("age2"); %> <% try { Class.forName("com.mysql.cj.jdbc.Driver"); //加载驱动 String url = "jdbc:mysql://localhost/hello?&serverTimezone=GMT"; //使用localhost端口,hello数据库 // 数据库用户名 String username = "root"; // 数据库密码 String password = "password"; // 创建Connection连接 Connection conn = DriverManager.getConnection(url, username, password); // 判断 数据库连接是否为空 if (conn != null) { // 输出连接信息 String sql = "insert into user values (?,?,?);"; PreparedStatement ps = conn.prepareStatement(sql); if(id!=null&&name!=null&&age!=null)//第一次运行时为null,所以进行特判 { ps.setString(1, id); ps.setString(2, name); ps.setString(3, age); ps.addBatch(); ps.setString(1, id1); ps.setString(2, name1); ps.setString(3, age1); ps.addBatch(); ps.setString(1, id2); ps.setString(2, name2); ps.setString(3, age2); ps.addBatch(); ps.executeBatch(); ps.clearBatch(); } conn.close(); } else { // 输出连接信息 System.out.println("数据库连接失败!"); } } catch (ClassNotFoundException e) { System.out.println("wrong"); } %> </body> </html>
效果如下图所示
第二 实现输入学号查询学生信息,跳转至指定页面
querystudent页面代码如下,使用action= xx.jsp可以跳转至指定页面
<%@ page contentType="text/html; charset=utf-8" language="java" pageEncoding="utf-8" errorPage=""%> <head> <title>查询</title> </head> <body> <form id="form" action="result.jsp" method="post"> 学号:<br /> <input type="text" name="id"><hr /> <input type="submit" value="提交"> <input type="reset" value="重置"> </form> </body> </html>
result页面代码如下,使用prepareStatement进行预处理
<%@ page contentType="text/html; charset=utf-8" language="java" pageEncoding="utf-8" errorPage=""%> <%@ page import="java.sql.*" %> <head> <title>查询学生</title> </head> <body> <% request.setCharacterEncoding("utf-8"); String id = request.getParameter("id"); %> <% try { Class.forName("com.mysql.cj.jdbc.Driver"); String url = "jdbc:mysql://localhost/hello?&serverTimezone=GMT"; // 数据库用户名 String username = "root"; // 数据库密码 String password = "password"; // 创建Connection连接 Connection conn = DriverManager.getConnection(url, username, password); // 判断 数据库连接是否为空 if (conn != null) { // 输出连接信息 String sql = "select *from user where id=?;"; PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, id); ResultSet rs = ps.executeQuery(); while (rs.next()) { String cur_id=rs.getString(1); String cur_name = rs.getString(2); String cur_age = rs.getString(3); out.println(cur_id + "\t" + cur_name + "\t" + cur_age); } conn.close(); } else { // 输出连接信息 System.out.println("数据库连接失败!"); } } catch (ClassNotFoundException e) { System.out.println("wrong"); } %> </body> </html>
第三 deleteStudent.jsp点击提交后按照姓名删除学生信息
<%@ page contentType="text/html; charset=utf-8" language="java" pageEncoding="utf-8" errorPage=""%> <%@ page import="java.sql.*" %> <head> <title>删除学生</title> </head> <body> <form id="form" method="post"> 姓名:<br /> <input type="text" name="name"><hr /> <input type="submit" value="提交"> <input type="reset" value="重置"> </form> <% request.setCharacterEncoding("utf-8"); String name = request.getParameter("name"); //System.out.println(name); %> <% try { Class.forName("com.mysql.cj.jdbc.Driver"); String url = "jdbc:mysql://localhost/hello?&serverTimezone=GMT"; // 数据库用户名 String username = "root"; // 数据库密码 String password = "password"; // 创建Connection连接 Connection conn = DriverManager.getConnection(url, username, password); // 判断 数据库连接是否为空 if (conn != null) { // 输出连接信息 if(name!=null) { String sql = "delete from user where name=?"; PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, name); ps.executeUpdate(); } conn.close(); } else { // 输出连接信息 System.out.println("数据库连接失败!"); } } catch (ClassNotFoundException e) { System.out.println("wrong"); } %> </body> </html>
暂时先这样,界面啥的实在是不会美化
prepareStatement