• 【JDBC】JDBCUtils工具类开发


    1.JDBCUtils工具类开发

    我们来写一个Jdbc工具类 - jdbcUtils,这个工具类可以用来获取Connection对象以及关闭数据库连接

    上代码:

    /**
     * JdbcUtils开发
     */
    public class JdbcUtils {
        private static String user;
        private static String password;
        private static String url;
        private static String driver;
    
        static {
            try {
                Properties properties = new Properties();
                properties.load(new FileInputStream("src\\mysql.properties"));
                user = properties.getProperty("user");
                password = properties.getProperty("password");
                url = properties.getProperty("url");
                driver = properties.getProperty("driver");
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
    
        /**
         * 连接数据库
         *
         * @return 一个数据库的连接
         */
        public static Connection getConnection() {
            try {
                Class.forName(driver);
                return DriverManager.getConnection(url, user, password);
            } catch (SQLException | ClassNotFoundException e) {
                throw new RuntimeException(e);
            }
        }
    
        /**
         * 关闭数据库连接
         * @param resultSet 结果集
         * @param statement 用于执行sql语句的对象
         * @param connection 数据库连接
         * 需要关闭资源就传入对象,否则传入null即可
         */
        public static void close(ResultSet resultSet, Statement statement, Connection connection) {
            try {
                if (resultSet != null) {
                    resultSet.close();
                }
    
                if (statement != null) {
                    statement.close();
                }
    
                if (connection != null) {
                    connection.close();
                }
            } catch (SQLException e) {
                throw new RuntimeException(e);
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61

    2.使用JdbcUtils工具类测试DML语句

    上代码:

    /**
     * 使用JdbcUtils工具类
     */
    public class UseJdbcUtils {
        /**
         * 测试更新语句
         */
        @Test
        public void testDML() {
            Connection connection = null;
            PreparedStatement preparedStatement = null;
            String sql = "update user set school = ? where id = ?";
            try {
                connection = JdbcUtils.getConnection();
                preparedStatement = connection.prepareStatement(sql);
                preparedStatement.setString(1, "大和大学");
                preparedStatement.setInt(2, 4);
                preparedStatement.executeUpdate();
            } catch (SQLException e) {
                throw new RuntimeException(e);
            } finally {
                // 关闭连接
                JdbcUtils.close(null, preparedStatement, connection);
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    3.使用JdbcUtils工具类测试查询语句

    上代码:

    /**
     * 测试查询语句
     */
    @Test
    public void testSelect() {
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        String sql = "select * from user";
        try {
            connection = JdbcUtils.getConnection();
            preparedStatement = connection.prepareStatement(sql);
            resultSet = preparedStatement.executeQuery();
            while (resultSet.next()) {
                int id = resultSet.getInt("id");
                String username = resultSet.getString("username");
                String password = resultSet.getString("password");
                String school = resultSet.getString("school");
                System.out.println(id + username + password + school);
            }
        } catch (SQLException e) {
            throw new RuntimeException(e);
        } finally {
            // 关闭连接
            JdbcUtils.close(resultSet, preparedStatement, connection);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
  • 相关阅读:
    Hadoop 之文件读取
    Google Earth Engine(GEE)—— 各矿区时序NDVI变化图(包含具体的运行函数)
    汽车电子 -- Bin、Hex、Srec、s19、elf等文件的区别
    buildadmin+tp8表格操作(7.1)表格的事件监听(el-table中的事件)
    void 0是什么
    贪心算法——知识点总结
    【大数据】Flink 内存管理(二):JobManager 内存分配(含实际计算案例)
    Vue3中使用富文本编辑器
    基础DML(数据更新)知识点总结及实例讲解
    最易/难学习的编程语言榜单出炉,C++最难学?
  • 原文地址:https://blog.csdn.net/Gherbirthday0916/article/details/126445538