JDBC PreparedStatement实现数据库增删改查案例

╰+攻爆jí腚メ 2022-06-08 11:15 324阅读 0赞

JDBC PreparedStatement实现数据库增删改查案例:

博主在数据库中创建person表,字段信息如下:

Center

项目中需要的包为:ojdbc.jar

Center 1

示例代码:

1.Main2.java

  1. package com.company;
  2. import java.sql.ResultSet;
  3. import java.sql.SQLException;
  4. public class Main2 {
  5. public static void main(String[] args) {
  6. //执行插入语句
  7. String sql = "INSERT INTO person(name,psw,age,sex,description) VALUES(?,?,?,?,?)";
  8. int update = DBUtils2.executeUpdate(sql, "李四", "123", 18, "男", "个人说明");
  9. System.out.println(update > 0 ? "添加成功" : "添加失败");
  10. //执行查询语句
  11. String sql1 = "SELECT name,psw,age FROM person WHERE personid=?";
  12. DBUtils2.RS dbRS = DBUtils2.executeQuery(sql1, 56);
  13. ResultSet rs = dbRS.getRs();
  14. try {
  15. if (rs.next()) {
  16. String name = rs.getString("name");
  17. String psw = rs.getString("psw");
  18. int age = rs.getInt("age");
  19. System.out.println("查询结果: 姓名:" + name + " 密码:" + psw + " 年龄:" + age);
  20. }
  21. } catch (SQLException e) {
  22. e.printStackTrace();
  23. } finally {
  24. dbRS.close();
  25. }
  26. //执行修改语句
  27. String sql2 = "UPDATE person SET age=36 WHERE personid=?";
  28. int i = DBUtils2.executeUpdate(sql2, 56);
  29. System.out.println(i > 0 ? "修改成功" : "修改失败");
  30. // //执行删除语句
  31. String sql3 = "DELETE FROM person WHERE personid=?";
  32. int i1 = DBUtils2.executeUpdate(sql3, 56);
  33. System.out.println(i1 > 0 ? "删除成功" : "删除失败");
  34. }
  35. }

2.DBUtils2.java

  1. package com.company;
  2. import java.sql.*;
  3. public class DBUtils2 {
  4. /**
  5. * 数据库的属性信息
  6. */
  7. // 数据库主机 IP地址
  8. private static final String IP = "127.0.0.1";
  9. // 数据库端口
  10. private static final String PORT = "1521";
  11. // 数据库名称?
  12. private static final String DB_NAME = "orcal";
  13. // 数据库URL
  14. private static final String URL = "jdbc:oracle:thin:@" + IP + ":" + PORT + ":" + DB_NAME;
  15. // 数据库连接用户名
  16. private static final String USER = "scott";
  17. // 用户密码
  18. private static final String PSW = "tiger";
  19. // 获取数据库连接
  20. public static Connection getConn() {
  21. Connection conn = null;
  22. try {
  23. conn = DriverManager.getConnection(URL, USER, PSW);
  24. } catch (SQLException e) {
  25. e.printStackTrace();
  26. }
  27. return conn;
  28. }
  29. // 执行查询语句方法
  30. public static RS executeQuery(String sql, Object... params) {
  31. Connection conn = null;
  32. PreparedStatement ps = null;
  33. try {
  34. conn = DBUtils2.getConn();
  35. ps = conn.prepareStatement(sql);
  36. for (int i = 0; i < params.length; i++) {
  37. ps.setObject(i + 1, params[i]);
  38. }
  39. ResultSet rs = ps.executeQuery();
  40. return new RS(conn, ps, rs);
  41. } catch (SQLException e) {
  42. e.printStackTrace();
  43. }
  44. return null;
  45. }
  46. // 执行更新语句方法
  47. public static int executeUpdate(String sql, Object... params) {
  48. Connection conn = null;
  49. PreparedStatement ps = null;
  50. try {
  51. conn = DBUtils2.getConn();
  52. ps = conn.prepareStatement(sql);
  53. for (int i = 0; i < params.length; i++) {
  54. ps.setObject(i + 1, params[i]);
  55. }
  56. int i = ps.executeUpdate();
  57. return i;
  58. } catch (SQLException e) {
  59. e.printStackTrace();
  60. } finally {
  61. close(conn, ps);
  62. }
  63. return 0;
  64. }
  65. // 释放连接资源
  66. public static void close(ResultSet rs) {
  67. close(null, null, rs);
  68. }
  69. // 释放连接资源
  70. public static void close(Connection conn) {
  71. close(conn, null, null);
  72. }
  73. // 释放连接资源
  74. public static void close(Connection conn, Statement st) {
  75. close(conn, st, null);
  76. }
  77. // 释放连接资源
  78. public static void close(Connection conn, Statement st, ResultSet rs) {
  79. if (rs != null) {
  80. try {
  81. rs.close();
  82. } catch (SQLException e) {
  83. e.printStackTrace();
  84. }
  85. }
  86. if (st != null) {
  87. try {
  88. st.close();
  89. } catch (SQLException e) {
  90. e.printStackTrace();
  91. }
  92. }
  93. if (conn != null) {
  94. try {
  95. conn.close();
  96. } catch (SQLException e) {
  97. e.printStackTrace();
  98. }
  99. }
  100. }
  101. public static class RS {
  102. private Connection conn = null;
  103. private Statement st = null;
  104. private ResultSet rs;
  105. public RS(Connection conn, Statement st, ResultSet rs) {
  106. this.conn = conn;
  107. this.st = st;
  108. this.rs = rs;
  109. }
  110. public ResultSet getRs() {
  111. return this.rs;
  112. }
  113. public void close() {
  114. DBUtils2.close(conn, st, rs);
  115. }
  116. }
  117. }

结果:

添加结果:

Center 2

修改结果:

Center 3

查询结果:

Center 4

删除结果:

Center 5

发表评论

表情:
评论列表 (有 0 条评论,324人围观)

还没有评论,来说两句吧...

相关阅读

    相关 JDBC增删案例讲解

    JDBC增删改查案例讲解 简介:这是一个网上非常常见的,JDBC的练习题,系统大家通过本文的讲解,熟悉JDBC的增删改查。 推荐学习路线:[JDBC数据库的连接][JD