From c33421b5c3a59ad0106a3ca44d1319a1ae76f938 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B7=AF=E7=8E=B2?= <1516489926@qq.com> Date: Wed, 24 May 2023 23:57:07 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=AC=E4=B8=89=E6=AC=A1=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...230522 tomcat \344\275\234\344\270\232.md" | 299 ++++++++++++++++++ 1 file changed, 299 insertions(+) create mode 100644 "29 \350\267\257\347\216\262/20230522 tomcat \344\275\234\344\270\232.md" diff --git "a/29 \350\267\257\347\216\262/20230522 tomcat \344\275\234\344\270\232.md" "b/29 \350\267\257\347\216\262/20230522 tomcat \344\275\234\344\270\232.md" new file mode 100644 index 0000000..5712c7a --- /dev/null +++ "b/29 \350\267\257\347\216\262/20230522 tomcat \344\275\234\344\270\232.md" @@ -0,0 +1,299 @@ +# 作业, + * 1 数据库相关的操作,使用封装的工具类 + * 2 编写四个servlet,使用注解指定相关的访问路径,分别对应查询,修改,删除,添加的操作 + * 3 从浏览器中,访问这中个路径,显示响应的信息,查询显示结果,其它的显示成功或是失败 + * 4 预习题:如何通过浏览器传送请求参数给servlet,servlet如何接收这些参数,并使用这些参数,去影响数据库的操作? + + + + + +## 工具类 + +```java +package serviet; +import java.sql.*; +public class Tool { + // 数据库的主机名,端口号,数据库名,关闭SSL,采用Unicode字符集,并以Utf8为编码 + private static final String url = "jdbc:mysql:///jdsp?useSSL=false&useUnicode=true&characterEncoding=utf8";// localhost:3306是默认的主机和端口号,可以省略掉 + private static final String user = "root"; // 用户名 + private static final String password = "root";// 密码 + + // 注册驱动 + static { + try { + Class.forName("com.mysql.jdbc.Driver"); + } catch (ClassNotFoundException e) { + System.out.println("驱动注册异常"); + e.printStackTrace();// 开发调试阶段,为了排查具体错误,要把详细的异常信息打印 + } + } + + // 获取连接对象 + public static Connection getConn() { + Connection conn = null;// alt+回车 + try { + conn = DriverManager.getConnection(url, user, password); + } catch (SQLException e) { + System.out.println("获取连接对象失败"); + e.printStackTrace(); + } + return conn; + } + + // 一个通用查询方法,接收SQL语句,返回结果集 + public static ResultSet query(String sql, String... keys) { + // String sql = "update student set id=? , name =? , sex =? where id=?"; + // 形参前加... 就表示其是可变参数,就是数组 + // 获取连接对象 + + ResultSet rs = null; + try { + Connection conn = getConn(); + // 建立预编译SQL的对象 + PreparedStatement pst = conn.prepareStatement(sql);// 将?号转成变量 + // 给每个变量赋值 + // 遍历可变参数 + for (int i = 0; i < keys.length; i++) { + pst.setString((i + 1), keys[i]); + } + // 执行SQL + rs = pst.executeQuery(); + } catch (SQLException e) { + System.out.println("执行查询异常"); + e.printStackTrace(); + } + return rs; + } + + // ,一个通用更新的方法(删除,添加,修改), + public static int update(String sql, String... keys) { + // String sql = "update student set id=? , name =? , sex =? where id=?"; + // 形参前加... 就表示其是可变参数,就是数组 + // 获取连接对象 + + int num = 0; + try { + Connection conn = getConn(); + // 建立预编译SQL的对象 + PreparedStatement pst = conn.prepareStatement(sql);// 将?号转成变量 + // 给每个变量赋值 + // 遍历可变参数 + for (int i = 0; i < keys.length; i++) { + pst.setString((i + 1), keys[i]); + } + // 执行SQL + num = pst.executeUpdate(); + } catch (SQLException e) { + System.out.println("执行查询异常"); + e.printStackTrace(); + } + + return num; + } + +} +``` + +## 数据库 + +```java +create database jdsp charset utf8; +use jdsp; +create table student( + `id` int(11), + `name` varchar(4), + `sex` varchar(1) +); +INSERT INTO `student` VALUES (1, '老大', '男'); +INSERT INTO `student` VALUES (2, '老二', '女'); +INSERT INTO `student` VALUES (3, '老三', '男'); +``` + +## 查看 + +```java +package serviet; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +@WebServlet("/select") +public class StudentServiet extends HttpServlet { + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + resp.setContentType("text/html;charset=utf-8");// 设置网页的格式 + resp.setCharacterEncoding("utf-8");// 设置网页的编码 + resp.getWriter().write("你要查看的内容在这里"); + // 通过响应对象创建一个PrintWriter对象 + PrintWriter out = resp.getWriter(); + //调用写的方法 + out.write("你发送了一个请求,我收到了!"); + String sql ="select * from student"; + ResultSet rs = Tool.query(sql); + out.write(""); + out.write(""); + try { + while (rs.next()){ + int id = rs.getInt(1); + String name = rs.getString(2); + String sex = rs.getString(3); + out.write("");//将信息写到浏览器 + } + } catch (SQLException e) { + System.out.println("发生错误"); + e.printStackTrace();//打印错误 + + } + out.write("
编号姓名性别
"+id+""+name+""+sex+"
"); + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + super.doPost(req, resp); + } +} +``` + +## 删除 + +```java +package serviet; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +@WebServlet("/select") +public class StudentServiet extends HttpServlet { + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + resp.setContentType("text/html;charset=utf-8");// 设置网页的格式 + resp.setCharacterEncoding("utf-8");// 设置网页的编码 + resp.getWriter().write("你要查看的内容在这里"); + //通过响应对象创建一个PrintWriter对象 + PrintWriter out = resp.getWriter(); + //调用写的方法 + out.write("你发送了一个请求,我收到了!"); + String sql ="delete from student where name='王鹤棣'"; + int i = Tool.update(sql); + //6.返回结果 + if (i >0) { + out.write("删除成功!"); + }else { + out.write("删除失败!"); + } + + } + + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + super.doPost(req, resp); + } +} +``` + +## 修改 + +```java +package serviet; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +@WebServlet("/select") +public class StudentServiet extends HttpServlet { + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + resp.setContentType("text/html;charset=utf-8");// 设置网页的格式 + resp.setCharacterEncoding("utf-8");// 设置网页的编码 + resp.getWriter().write("你要查看的内容在这里"); + + //通过响应对象创建一个PrintWriter对象 + PrintWriter out = resp.getWriter(); + //调用写的方法 + out.write("你发送了一个请求,我收到了!"); + String sql ="update student set name='罗云熙' where id=1"; + int i = Tool.update(sql); + //6.返回结果 + if (i >0) { + out.write("修改成功!"); + }else { + out.write("修改失败!"); + } + + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + super.doPost(req, resp); + } +} +``` + +## 添加· + +```java +package serviet; + +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +@WebServlet("/select") +public class StudentServiet extends HttpServlet { + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + resp.setContentType("text/html;charset=utf-8");// 设置网页的格式 + resp.setCharacterEncoding("utf-8");// 设置网页的编码 + resp.getWriter().write("你要查看的内容在这里"); + + //通过响应对象创建一个PrintWriter对象 + PrintWriter out = resp.getWriter(); + //调用写的方法 + out.write("你发送了一个请求,我收到了!"); + String sql ="insert into student value(4,'王鹤棣','男')"; + int i = Tool.update(sql); + //6.返回结果 + if (i >0) { + out.write("添加成功!"); + }else { + out.write("添加失败!"); + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + super.doPost(req, resp); + } +} +``` + -- Gitee