diff --git a/作业/数据库系统原理与实践-朱丹丹/实践作业/第八次作业/Question10.java b/作业/数据库系统原理与实践-朱丹丹/实践作业/第八次作业/Question10.java new file mode 100644 index 0000000..201a038 --- /dev/null +++ b/作业/数据库系统原理与实践-朱丹丹/实践作业/第八次作业/Question10.java @@ -0,0 +1,69 @@ +import java.sql.*; + +public class Question10 { + + // MySQL 8.0 以上版本 - JDBC 驱动名及数据库 URL + static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver"; + static final String DB_URL = "jdbc:mysql://公网IP:3306/user000db?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC"; + + + // 数据库的用户名与密码,需要根据自己的设置 + static final String USER = "DB_USER000"; + static final String PASS = "DB_USER000@123"; + + public static void main(String[] args) { + Connection conn = null; + Statement stmt = null; + try{ + // 注册 JDBC 驱动 + Class.forName(JDBC_DRIVER); + + // 打开链接 + System.out.println("连接数据库..."); + conn = DriverManager.getConnection(DB_URL,USER,PASS); + + // 执行查询 + System.out.println("实例化Statement对象..."); + stmt = conn.createStatement(); + String sql; + sql = "SELECT ID, name, dept_name, salary from instructor where salary > 70000 order by dept_name"; + ResultSet rs = stmt.executeQuery(sql); + + // 展开结果集数据库 + while(rs.next()){ + // 通过字段检索 + String id = rs.getString("ID"); + String name = rs.getString("name"); + String dept_name = rs.getString("dept_name"); + Double salary = rs.getDouble("salary"); + + // 输出数据 + System.out.print(id); + System.out.print("|" + name + "|" + dept_name + "|" + salary); + System.out.print("\n"); + } + // 完成后关闭 + rs.close(); + stmt.close(); + conn.close(); + }catch(SQLException se){ + // 处理 JDBC 错误 + se.printStackTrace(); + }catch(Exception e){ + // 处理 Class.forName 错误 + e.printStackTrace(); + }finally{ + // 关闭资源 + try{ + if(stmt!=null) stmt.close(); + }catch(SQLException se2){ + }// 什么都不做 + try{ + if(conn!=null) conn.close(); + }catch(SQLException se){ + se.printStackTrace(); + } + } + System.out.println("Goodbye!"); + } +} diff --git a/作业/数据库系统原理与实践-朱丹丹/实践作业/第八次作业/Question11.java b/作业/数据库系统原理与实践-朱丹丹/实践作业/第八次作业/Question11.java new file mode 100644 index 0000000..798deee --- /dev/null +++ b/作业/数据库系统原理与实践-朱丹丹/实践作业/第八次作业/Question11.java @@ -0,0 +1,68 @@ +import java.sql.*; + +public class Question11 { + + // MySQL 8.0 以上版本 - JDBC 驱动名及数据库 URL + static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver"; + static final String DB_URL = "jdbc:mysql://公网IP:3306/user000db?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC"; + + + // 数据库的用户名与密码,需要根据自己的设置 + static final String USER = "DB_USER000"; + static final String PASS = "DB_USER000@123"; + + public static void main(String[] args) { + Connection conn = null; + Statement stmt = null; + try{ + // 注册 JDBC 驱动 + Class.forName(JDBC_DRIVER); + + // 打开链接 + System.out.println("连接数据库..."); + conn = DriverManager.getConnection(DB_URL,USER,PASS); + + // 执行查询 + System.out.println("实例化Statement对象..."); + stmt = conn.createStatement(); + + Boolean rs = stmt.execute("drop procedure if exists demoSp;"); + rs = stmt.execute("create procedure demoSp(inout test int) begin set test = test + 1; end"); + + CallableStatement cs = conn.prepareCall("{call demoSp(?)}"); + System.out.println("调用存储过程,作用为将输入的变量+1:"); + int res = 0; + System.out.println("输入变量:"); + System.out.println(res); + cs.setInt(1, res); + cs.registerOutParameter(1, Types.INTEGER); + cs.execute(); + res = cs.getInt(1); + System.out.println("调用结果:"); + System.out.println(res); + + // 完成后关闭 + cs.close(); + stmt.close(); + conn.close(); + }catch(SQLException se){ + // 处理 JDBC 错误 + se.printStackTrace(); + }catch(Exception e){ + // 处理 Class.forName 错误 + e.printStackTrace(); + }finally{ + // 关闭资源 + try{ + if(stmt!=null) stmt.close(); + }catch(SQLException se2){ + }// 什么都不做 + try{ + if(conn!=null) conn.close(); + }catch(SQLException se){ + se.printStackTrace(); + } + } + System.out.println("Goodbye!"); + } +} diff --git a/作业/数据库系统原理与实践-朱丹丹/平时作业/第八次作业.pdf b/作业/数据库系统原理与实践-朱丹丹/平时作业/第八次作业.pdf new file mode 100644 index 0000000..0b74611 Binary files /dev/null and b/作业/数据库系统原理与实践-朱丹丹/平时作业/第八次作业.pdf differ