CC00082.bigdatajava——|Java&MySQL.JDBC.V07|——|MySQL.v07|Jdbc开发_释放资源|

本文详细阐述了如何在Java中正确地使用JDBC API,包括ResultSet、Statement和Connection的释放顺序,以及在finally块中的最佳实践。通过实例演示,展示了从连接数据库到处理结果集再到资源关闭的完整流程。
摘要由CSDN通过智能技术生成
一、API使用:释放资源
### --- API使用:释放资源

~~~     需要释放的对象:ResultSet 结果集,Statement 语句,Connection 连接
~~~     释放原则:先开的后关,后开的先关。ResultSet ==> Statement ==> Connection
~~~     放在哪个代码块中:finally 块
~~~     与IO流一样,使用后的东西都需要关闭!关闭的顺序是先开后关, 先得到的后关闭,后得到的先关闭
二、代码示例
public class JDBCDemo05 {
    
    public static void main(String[] args) {
        Connection connection = null;
        Statement statement = null;
        ResultSet resultSet = null;
        
        try {
            //1.注册驱动(省略)
            //2.获取连接
            String url = "jdbc:mysql://localhost:3306/db4";
            connection = DriverManager.getConnection(url, "root", "123456");
            
            //3.获取 Statement对象
            statement = connection.createStatement();
            
            String sql = "select * from jdbc_user";
            resultSet = statement.executeQuery(sql);
            
        } catch (SQLException e) {
            
            e.printStackTrace();
            
        } finally {
            /**
* 开启顺序: connection ==> statement => resultSet
* 关闭顺序: resultSet ==> statement ==> connection
*/
            try {
                connection.close();
                resultSet.close();
                statement.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}
三、步骤总结
### --- 步骤总结

——>        1. 获取驱动(可以省略)
——>        2. 获取连接
——>        3. 获取Statement对象
——>        4. 处理结果集(只在查询时处理)
——>        5. 释放资源
四、sql语句
package com.yanqi.jdbc05;

import java.sql.*;

public class JdbcDemo03 {
    
        public static void main(String[] args) {

            Connection connection = null;
            Statement statement = null;
            ResultSet resultSet = null;

            try {
                //1.注册驱动 省略
                //2.获取连接
                connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/db4", "root", "123456");

                //3.获取语句执行对象
                statement = connection.createStatement();

                //4.执行SQL
                String sql = "select * from jdbc_user";
                resultSet = statement.executeQuery(sql);

                //5.处理结果集对象

            } catch (SQLException e) {
                e.printStackTrace();

            }finally {
                //finally 中的代码始终会执行
                try {
                    resultSet.close();
                    statement.close();
                    connection.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yanqi_vip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值