From 45a111aee287721ec80e7b5a6e6c71fd86ad8075 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E5=8E=9A=E8=BE=B0?= Date: Sat, 20 May 2023 13:18:43 +0800 Subject: [PATCH] second --- ...6\254\241\344\275\234\344\270\232 JDBC.md" | 182 ++++++++++++++++++ ...4\275\234\344\270\232 PrepareStatement.md" | 132 +++++++++++++ 2 files changed, 314 insertions(+) create mode 100644 "53 \345\221\250\345\216\232\350\276\260/20230517 \347\254\254\344\270\200\346\254\241\344\275\234\344\270\232 JDBC.md" create mode 100644 "53 \345\221\250\345\216\232\350\276\260/20230520 \347\254\254\344\272\214\346\254\241\344\275\234\344\270\232 PrepareStatement.md" diff --git "a/53 \345\221\250\345\216\232\350\276\260/20230517 \347\254\254\344\270\200\346\254\241\344\275\234\344\270\232 JDBC.md" "b/53 \345\221\250\345\216\232\350\276\260/20230517 \347\254\254\344\270\200\346\254\241\344\275\234\344\270\232 JDBC.md" new file mode 100644 index 0000000..0f5a300 --- /dev/null +++ "b/53 \345\221\250\345\216\232\350\276\260/20230517 \347\254\254\344\270\200\346\254\241\344\275\234\344\270\232 JDBC.md" @@ -0,0 +1,182 @@ +# 20230517 第一次作业 JDBC + +## (Java连接MySQL数据库) + +### JDBC作业: + +1. MySQL中创建一个数据库student_db + +2. 库中创建student表 + +3. 表中数据如下 + +4. | 编号 | 姓名 | 性别 | + | ---- | ---- | ---- | + | 1 | 张三 | 男 | + | 2 | 李四 | 女 | + | 3 | 王五 | 男 | + +5. 编写java 4个类,分别实现以下功能 + + 1. 查询功能,查询student中所有数据 + 2. 添加功能 + 3. 修改功能 + 4. 删除功能 + +6. 扩展题【预习题】 + + 1. 能否实现一个类中,用四个方法来实现上面4个类的功能 + + 2. 能否实现将查询的结果,封装成java对象 + +## 答案 + +```java +import java.sql.*; +/* +查询 +* */ +public class Select { + public static final String Driver = "com.mysql.jdbc.Driver"; + public static final String URL = "jdbc:mysql://localhost:3306/student_db?useSSL=false"; + public static final String user = "root"; + public static final String password = "root"; + + public static void main(String[] args) { + try { + Class.forName(Driver); + Connection conn= DriverManager.getConnection(URL,user,password); +// System.out.println(conn); + Statement sta=conn.createStatement(); + String sql="SELECT id,name,sex from student"; + ResultSet resultSet = sta.executeQuery(sql); + while (resultSet.next()){ + int id=resultSet.getInt("id"); + String name=resultSet.getString("name"); + String sex=resultSet.getString("name"); + System.out.println("ID:"+id+"\tname:"+name+"\tsex:"+sex); + + } + conn.close(); + } catch (ClassNotFoundException e) { + System.out.println("驱动包导入错误!"); + } catch (SQLException e) { + System.out.println("SQL语句错误!"); + } + } +} +``` + +```java +package java与数据库的连接; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import java.sql.Statement; +/* +更新 +* */ +public class Update { + public static final String Driver = "com.mysql.jdbc.Driver"; + public static final String URL = "jdbc:mysql://localhost:3306/student_db?useSSL=false"; + public static final String user = "root"; + public static final String password = "root"; + + public static void main(String[] args) { + try { + Class.forName(Driver); + Connection conn= DriverManager.getConnection(URL,user,password); + Statement sta=conn.createStatement(); + String sql="update student set name='zs' where id=3"; + int i =sta.executeUpdate(sql); + if (i==1) { + System.out.println("修改成功"); + } else { + System.out.println("修改失败"); + } + } catch (ClassNotFoundException e) { + System.out.println("DriverError"); + } catch (SQLException e) { + System.out.println("SQL语句错误"); + } + } +} +``` + +```java +package java与数据库的连接; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import java.sql.Statement; +/* +删除 +*/ +public class Delete { + public static final String Driver = "com.mysql.jdbc.Driver"; + public static final String URL = "jdbc:mysql://localhost:3306/student_db?useSSL=false"; + public static final String user = "root"; + public static final String password = "root"; + + public static void main(String[] args) { + try { + Class.forName(Driver); + Connection conn = DriverManager.getConnection(URL, user, password); + Statement sta = conn.createStatement(); + String sql = "delete from student where id=2"; + int i = sta.executeUpdate(sql); + if (i == 1) { + System.out.println("删除成功"); + } else { + System.out.println("删除失败"); + } + } catch (ClassNotFoundException e) { + System.out.println("DriverError"); + } catch (SQLException e) { + System.out.println("SQL语句错误"); + } + + } +} +``` + +```java +package java与数据库的连接; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import java.sql.Statement; +/* +增加 + */ +public class Insert { + public static final String Driver = "com.mysql.jdbc.Driver"; + public static final String URL = "jdbc:mysql://localhost:3306/student_db?useSSL=false"; + public static final String user = "root"; + public static final String password = "root"; + + public static void main(String[] args) { + try { + Class.forName(Driver); + Connection conn= DriverManager.getConnection(URL,user,password); + Statement sta=conn.createStatement(); + String sql="insert into student values(4,'小明','男')"; + int i=sta.executeUpdate(sql); + if (i==1) { + System.out.println("插入成功"); + } else { + System.out.println("插入失败"); + } + } catch (ClassNotFoundException e) { + System.out.println("DeriveError"); + } catch (SQLException e) { + System.out.println("SQL语句错误"); + } + + } +} +``` + diff --git "a/53 \345\221\250\345\216\232\350\276\260/20230520 \347\254\254\344\272\214\346\254\241\344\275\234\344\270\232 PrepareStatement.md" "b/53 \345\221\250\345\216\232\350\276\260/20230520 \347\254\254\344\272\214\346\254\241\344\275\234\344\270\232 PrepareStatement.md" new file mode 100644 index 0000000..20e6796 --- /dev/null +++ "b/53 \345\221\250\345\216\232\350\276\260/20230520 \347\254\254\344\272\214\346\254\241\344\275\234\344\270\232 PrepareStatement.md" @@ -0,0 +1,132 @@ +# 20230520 第二次作业 PrepareStatement + +(将MySQL数据添加至Java集合) + +```Java +package java与数据库的连接.封装; + +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Scanner; +/** + * @author zhc + */ +public class test { + public static void main(String[] args) { + //获取连接 + Driver.conn(); + //注入SQL语句 + Driver.query("select * from student"); + //关闭连接 + Driver.close(); + //查看集合 + Driver.show(); + } +} +``` + +```Java +package java与数据库的连接.封装; + +import java.sql.*; +import java.util.ArrayList; + +/** + * @author zhc + */ +public class Driver { + private static final String Driver = "com.mysql.jdbc.Driver"; + private static final String URL = "jdbc:mysql://localhost:3306/student_db?useSSL=false&unicode=true&characterEncoding=utf8"; + private static final String user = "root"; + private static final String paw = "root"; + int id; + String name; + String sex; + + static void show() { + for (int i = 0; i < list.size(); i++) { + Driver driver = list.get(i); + int id = driver.id; + String name = driver.name; + String sex = driver.sex; + System.out.println("ID=" + id + ",name=" + name + ",sex=" + sex); + } + } + + //注册驱动 + static { + System.out.println("注册驱动中..."); + try { + Class.forName(Driver); + } catch (ClassNotFoundException e) { + System.out.println("驱动注册失败"); + } + } + + public static Connection conn() { + System.out.println("连接数据库中..."); + Connection con = null; + try { + con = DriverManager.getConnection(URL, user, paw); + } catch (SQLException e) { + System.out.println("数据库连接失败"); + } + return con; + } + + static ArrayList list = new ArrayList<>(); + + public static void query(String sql, String... keys) { + System.out.println("查询中..."); + ResultSet rs = null; + int j = 0; + try { + PreparedStatement pst = conn().prepareStatement(sql); + for (int i = 0; i < keys.length; i++) { + pst.setString((i + 1), keys[i]); + } + rs = pst.executeQuery(sql); + while (rs.next()) { + int id = rs.getInt(1); + String name = rs.getString(2); + String sex = rs.getString(3); + System.out.printf("ID=%d,name=%s,sex=%s\n", id, name, sex); + Driver driver = new Driver(); + driver.id = id; + driver.name = name; + driver.sex = sex; + list.add(j++, driver); + } + } catch (SQLException e) { + System.out.println("查询失败"); + } + } + + public static void update(String sql, String... keys) { + System.out.println("更新中..."); + try { + PreparedStatement pst = conn().prepareStatement(sql, keys); + int i = pst.executeUpdate(sql); + if (i > 0) { + System.out.printf("变化了%d条\n", i); + } else { + System.out.printf("更新失败.变化%d条\n", i); + } + } catch (SQLException e) { + System.out.println("更新失败"); + } + } + + public static void close() { + System.out.println("释放资源中..."); + try { + conn().close(); + } catch (SQLException e) { + System.out.println("释放资源失败"); + } + System.out.println("释放资源成功"); + } + +} +``` \ No newline at end of file -- Gitee