From fe39e2796c5974f9932fa2323f94edd116a5a92c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=AF=E9=94=90?= <2570878950@qq.com> Date: Mon, 22 May 2023 00:15:26 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=88=91=E7=9A=84=E7=AC=AC=E4=BA=8C?= =?UTF-8?q?=E6=AC=A1=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20230522 JDBC.md" | 195 ++++++++++++++++++ 1 file changed, 195 insertions(+) create mode 100644 "20 \345\206\257\351\224\220/20230522 JDBC.md" diff --git "a/20 \345\206\257\351\224\220/20230522 JDBC.md" "b/20 \345\206\257\351\224\220/20230522 JDBC.md" new file mode 100644 index 0000000..177444c --- /dev/null +++ "b/20 \345\206\257\351\224\220/20230522 JDBC.md" @@ -0,0 +1,195 @@ + + +```mysql +create database student_db charset utf8; +use Student_db; +create table student + ( +id int PRIMARY KEY AUTO_INCREMENT, +name varchar(5), +sex char(2)); +insert into student values + (1,"张三","男"), + (2,"李四","女"), + (3,"王五","男"); +``` + +## 工具类 + +```java +import java.sql.*; + +public class Tool { + /* + 使用新的执行SQL的对象,封装一个工具类, + 然后用这个工具类查询上次作业的数据库,实现将查询结果封装成学生对象, + 最后存入一个集合窗口,遍历之个集合的对象 + */ + static { + try { + Class.forName("com.mysql.jdbc.Driver"); + } catch (ClassNotFoundException e) { + throw new RuntimeException(e); + } + } + private static String url = "jdbc:mysql://localhost:3306/student_db?useSSL=false&useUnicode=true&characterEncoding"; + private static String username = "root"; + private static String password = "root"; + public static Connection co() throws SQLException { + Connection conn = DriverManager.getConnection(url, username, password); + return conn; + } + public static ResultSet query(String sql,String ...keys) throws SQLException { + PreparedStatement pr = co().prepareStatement(sql); + for (int i = 0; i < keys.length; i++) { + pr.setString((i+1),keys[i]); + } + ResultSet re = pr.executeQuery(); + return re; + } + public static int update(String sql,String ...keys) throws SQLException { + Connection conn = co(); + PreparedStatement pst = conn.prepareStatement(sql); + for (int i = 0; i < keys.length; i++) { + pst.setString((i+1),keys[i]); + } + int i = pst.executeUpdate(); + return i; + } + public static void close(Connection conn,PreparedStatement pst,ResultSet rst) throws SQLException { + if (rst!=null){ + rst.close(); + } + if (pst!=null){ + pst.close(); + } + if (conn!=null){ + conn.close(); + } + } + +} +``` + +## 测试类 + +```java +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Scanner; + +public class Test { + public static void main(String[] args) throws SQLException { + System.out.println("欢迎进入系统!" + + "\n1.查询全部信息" + + "\n2.查询个别信息" + + "\n3.添加信息" + + "\n4.修改信息" + + "\n5.删除信息" + + "\n6.退出系统"); + Scanner sc = new Scanner(System.in); + while (true) { + System.out.println("请输入要选择的功能选项:"); + String i = sc.nextLine(); + switch (i) { + case "1": + System.out.println("您选择了查询全部信息"); + allSelect(); + break; + case "2": + System.out.println("您选择了查询个别信息"); + select(); + break; + case "3": + System.out.println("您选择了添加信息"); + add(); + break; + case "4": + System.out.println("您选择了修改信息"); + update(); + break; + case "5": + System.out.println("您选择了删除信息"); + delete(); + break; + case "6": + System.out.println("您选择了退出系统"); + return; + default: + System.out.println("请输入正确的功能选项!"); + break; + } + } + } + private static void allSelect() throws SQLException { + String sql = "select * from student"; + ResultSet rs = Tool.query(sql); + while (rs.next()){ + int id = rs.getInt("id"); + String name = rs.getString("name"); + String sex = rs.getString("sex"); + System.out.println(id+","+name+","+sex); + } + Tool.close(null,null,rs); + } + private static void select() throws SQLException { + Scanner sc = new Scanner(System.in); + System.out.print("请输入编号:"); + String userid=sc.nextLine(); + System.out.print("请输入姓名:"); + String username=sc.nextLine(); + String sql = "select * from student where id=? and name=?"; + String[] keys= {userid,username}; + ResultSet rs = Tool.query(sql,keys); + while (rs.next()){ + int id = rs.getInt("id"); + String name = rs.getString("name"); + String sex = rs.getString("sex"); + System.out.println(id+","+name+","+sex); + } + Tool.close(null,null,rs); + } + private static void add() throws SQLException { + Scanner sc = new Scanner(System.in); + System.out.print("请输入姓名:"); + String username=sc.nextLine(); + System.out.print("请输入性别:"); + String usersex=sc.nextLine(); + String sql2= "insert into student values (null,?,?)"; + int i = Tool.update(sql2,username,usersex); + if (i>0){ + System.out.println("添加成功"); + }else{ + System.out.println("添加失败了"); + } + } + private static void update() throws SQLException { + Scanner sc = new Scanner(System.in); + System.out.print("请输入修改后姓名:"); + String username=sc.nextLine(); + System.out.print("请输入修改前编号:"); + String userid=sc.nextLine(); + String sql2= "update student set name=? where id=?"; + int i = Tool.update(sql2,username,userid); + if (i>0){ + System.out.println("修改成功"); + }else{ + System.out.println("修改失败了"); + } + } + private static void delete() throws SQLException { + Scanner sc = new Scanner(System.in); + System.out.print("请输入编号:"); + String userid = sc.nextLine(); + System.out.print("请输入姓名:"); + String username = sc.nextLine(); + String sql2 = "delete from student where id=? and name=?"; + int i = Tool.update(sql2,userid,username); + if (i > 0) { + System.out.println("删除成功"); + } else { + System.out.println("删除失败了"); + } + } +} +``` -- Gitee From 7f82e6212afd5b69f32870f2c8f5e0df7f70e526 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=AF=E9=94=90?= <2570878950@qq.com> Date: Tue, 23 May 2023 22:05:08 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=88=91=E7=9A=84=E7=AC=AC=E4=B8=89?= =?UTF-8?q?=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" | 205 ++++++++++++++++++ 1 file changed, 205 insertions(+) create mode 100644 "20 \345\206\257\351\224\220/20230522 tomcat \344\275\234\344\270\232.md" diff --git "a/20 \345\206\257\351\224\220/20230522 tomcat \344\275\234\344\270\232.md" "b/20 \345\206\257\351\224\220/20230522 tomcat \344\275\234\344\270\232.md" new file mode 100644 index 0000000..a0a0dac --- /dev/null +++ "b/20 \345\206\257\351\224\220/20230522 tomcat \344\275\234\344\270\232.md" @@ -0,0 +1,205 @@ +```java + 作业, + 1 数据库相关的操作,使用封装的工具类 + 2 编写四个servlet,使用注解指定相关的访问路径,分别对应查询,修改,删除,添加的操 作 + 3 从浏览器中,访问这中个路径,显示响应的信息,查询显示结果,其它的显示成功或是失败 + 4 预习题:如何通过浏览器传送请求参数给servlet,servlet如何接收这些参数,并使用这些参数,去影响数据库的操作? + + + +工具类 +import java.sql.*; +public class DbJbdc { + private static final String url="jdbc:mysql:///student_db?useSSL=false&useUnicode=true&characterEncoding=utf8"; + private static final String user="root"; + private static final String pass="root"; + public static Connection link() throws ClassNotFoundException, SQLException { + Class.forName("com.mysql.cj.jdbc.Driver"); + Connection conn = DriverManager.getConnection(url, user, pass); + return conn; + } + public static int currencyUpdate(String sql,String ...flop) throws SQLException, ClassNotFoundException { + Connection conn = link(); + PreparedStatement prs = conn.prepareStatement(sql); + for (int i = 0; i < flop.length; i++) { + prs.setString((i+1),flop[i]); + } + int i = prs.executeUpdate(); + return i; + } + public static int delete(String sql,String ...flop) throws SQLException, ClassNotFoundException { + int i = currencyUpdate(sql, flop); + return i; + } + public static int modify(String sql,String ...flop) throws SQLException, ClassNotFoundException { + int i = currencyUpdate(sql, flop); + return i; + } + public static int add(String sql,String ...flop) throws SQLException, ClassNotFoundException { + int i = currencyUpdate(sql, flop); + return i; + } + public static ResultSet Query(String sql,String ...flop) throws SQLException, ClassNotFoundException { + Connection conn = link(); + PreparedStatement prs = conn.prepareStatement(sql); + for (int i = 0; i < flop.length; i++) { + prs.setString((i+1),flop[i]); + } + ResultSet rs = prs.executeQuery(); + return rs; + } +} + + +查找 +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.ResultSet; +import java.sql.SQLException; +@WebServlet("/seek") +public class Seek extends HttpServlet { + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + resp.setContentType("text/html;charset=utf-8"); + resp.setCharacterEncoding("utf-8"); + try { + String sql ="select * from student"; + ResultSet rs = DbJbdc.Query(sql); + while (rs.next()){ + int id = rs.getInt("id"); + String name = rs.getString("name"); + String sex = rs.getString("sex"); + resp.getWriter().write(id+" "+name+" "+sex+"
"); + } + } catch (SQLException e) { + e.printStackTrace(); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + super.doPost(req, resp); + } +} + + +![/](tomcat\seek.png) + +添加 +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.SQLException; +@WebServlet("/add") +public class Add extends HttpServlet { + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + resp.setContentType("text/html;charset=utf-8"); + resp.setCharacterEncoding("utf-8"); + try { + String sql ="insert into student values (?,?,?)"; + int add = DbJbdc.add(sql, "0", "小明", "男"); + if (add>0){ + resp.getWriter().write("成功"); + }else { + resp.getWriter().write("失败"); + } + } catch (SQLException e) { + throw new RuntimeException(e); + } catch (ClassNotFoundException e) { + throw new RuntimeException(e); + } + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + super.doPost(req, resp); + } +} + + + + +删除 +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.SQLException; +@WebServlet("/delete") +public class Delete extends HttpServlet { + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + resp.setContentType("text/html;charset=utf-8"); + resp.setCharacterEncoding("utf-8"); + try { + String sql ="delete from student where id=?"; + int add = DbJbdc.add(sql, "1"); + if (add>0){ + resp.getWriter().write("成功"); + }else { + resp.getWriter().write("失败"); + } + } catch (SQLException e) { + throw new RuntimeException(e); + } catch (ClassNotFoundException e) { + throw new RuntimeException(e); + } + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + super.doPost(req, resp); + } +} + + +![](tomcat\delete.png) + +修改 +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.SQLException; +@WebServlet("/modify") +public class Modify extends HttpServlet { + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + resp.setContentType("text/html;charset=utf-8"); + resp.setCharacterEncoding("utf-8"); + try { + String sql ="update student set sex=? where id=?"; + int add = DbJbdc.add(sql, "女","2"); + if (add>0){ + resp.getWriter().write("成功"); + }else { + resp.getWriter().write("失败"); + } + } catch (SQLException e) { + throw new RuntimeException(e); + } catch (ClassNotFoundException e) { + throw new RuntimeException(e); + } + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + super.doPost(req, resp); + } +} +``` + -- Gitee