diff --git "a/48 \346\235\250\346\264\213/2023052tomcat3.md" "b/48 \346\235\250\346\264\213/2023052tomcat3.md" new file mode 100644 index 0000000000000000000000000000000000000000..d25e4beb4ed9fe7122239889bb060612017ab962 --- /dev/null +++ "b/48 \346\235\250\346\264\213/2023052tomcat3.md" @@ -0,0 +1,241 @@ + * 1 数据库相关的操作,使用封装的工具类 + + * 2 编写四个servlet,使用注解指定相关的访问路径,分别对应查询,修改,删除,添加的操作 + + * 3 从浏览器中,访问这中个路径,显示响应的信息,查询显示结果,其它的显示成功或是失败 + + ```java + package servlet; + + 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.sql.*; + + //使用注解,给这个类绑定一个访问的路径 + @WebServlet("/select") + public class StudentServlet extends HttpServlet { + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + req.setCharacterEncoding("utf-8"); + resp.setContentType("text/html;charset=utf-8"); + try { + Class.forName("com.mysql.jdbc.Driver"); + Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/student_db?useSSL=false&useUnicode=true&characterEncoding=utf8","root","root"); + String sql="select * from student"; + PreparedStatement pst = conn.prepareStatement(sql); + ResultSet rs = pst.executeQuery(sql); + while (rs.next()){ + //结果集取值方式,结果集对象名.getXxx(索引,or 字段名) Xxx是数据类型 + int id = rs.getInt("id"); + String name = rs.getString("name"); + String sex = rs.getString("sex"); + resp.getWriter().write(id+name+sex+"
"); + } + rs.close(); + pst.close(); + conn.close(); + } catch (ClassNotFoundException e) { + throw new RuntimeException(e); + } catch (SQLException e) { + throw new RuntimeException(e); + } + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + super.doPost(req, resp); + } + } + + ``` + + 浏览器 + +```java + + + + + + servlet + servlet.StudentServlet + + + servlet + /let + + +``` + +更新 + +```java +package servlet; + +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.sql.*; + +@WebServlet("/update") +public class StudentServlet0 extends HttpServlet { + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + req.setCharacterEncoding("utf-8"); + resp.setContentType("text/html;charset=utf-8"); + try { + Class.forName("com.mysql.jdbc.Driver"); + Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/student_db?useSSL=false&useUnicode=true&characterEncoding=utf8","root","root"); + String sql="update student set name=? where id=? "; + PreparedStatement pst = conn.prepareStatement(sql); + ResultSet rs = pst.executeQuery(sql); + while (rs.next()){ + //结果集取值方式,结果集对象名.getXxx(索引,or 字段名) Xxx是数据类型 + int id = rs.getInt("id"); + String name = rs.getString("name"); + String sex = rs.getString("sex"); + resp.getWriter().write(id+name+sex+"
"); + } + int i=pst.executeUpdate(sql); + rs.close(); + pst.close(); + conn.close(); + if(i>0){ + System.out.println("更新成功"); + }else + System.out.println("更新失败"); + } catch (ClassNotFoundException e) { + throw new RuntimeException(e); + } catch (SQLException e) { + throw new RuntimeException(e); + } + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + super.doPost(req, resp); + } +} + +``` + +删除 + +```java +package servlet; + +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.sql.*; + +@WebServlet("/update") +public class StudentServlet0 extends HttpServlet { + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + req.setCharacterEncoding("utf-8"); + resp.setContentType("text/html;charset=utf-8"); + try { + Class.forName("com.mysql.jdbc.Driver"); + Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/student_db?useSSL=false&useUnicode=true&characterEncoding=utf8","root","root"); + String sql="delete from math where id=2 "; + PreparedStatement pst = conn.prepareStatement(sql); + ResultSet rs = pst.executeQuery(sql); + while (rs.next()){ + //结果集取值方式,结果集对象名.getXxx(索引,or 字段名) Xxx是数据类型 + int id = rs.getInt("id"); + String name = rs.getString("name"); + String sex = rs.getString("sex"); + resp.getWriter().write(id+name+sex+"
"); + } + int i=pst.executeUpdate(sql); + rs.close(); + pst.close(); + conn.close(); + if(i>0){ + System.out.println("删除成功"); + }else + System.out.println("删除失败"); + } catch (ClassNotFoundException e) { + throw new RuntimeException(e); + } catch (SQLException e) { + throw new RuntimeException(e); + } + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + super.doPost(req, resp); + } +} + +``` + +添加 + +```java +package servlet; + +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.sql.*; + +@WebServlet("/update") +public class StudentServlet0 extends HttpServlet { + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + req.setCharacterEncoding("utf-8"); + resp.setContentType("text/html;charset=utf-8"); + try { + Class.forName("com.mysql.jdbc.Driver"); + Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/student_db?useSSL=false&useUnicode=true&characterEncoding=utf8","root","root"); + String sql="insert into math values (19,'朱元璋',34455) "; + PreparedStatement pst = conn.prepareStatement(sql); + ResultSet rs = pst.executeQuery(sql); + while (rs.next()){ + //结果集取值方式,结果集对象名.getXxx(索引,or 字段名) Xxx是数据类型 + int id = rs.getInt("id"); + String name = rs.getString("name"); + String sex = rs.getString("sex"); + resp.getWriter().write(id+name+sex+"
"); + } + int i=pst.executeUpdate(sql); + rs.close(); + pst.close(); + conn.close(); + if(i>0){ + System.out.println("添加成功"); + }else + System.out.println("添加失败"); + } catch (ClassNotFoundException e) { + throw new RuntimeException(e); + } catch (SQLException e) { + throw new RuntimeException(e); + } + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + super.doPost(req, resp); + } +} + +``` +