高效学习JDBC(mysql版)(二) --jdbc资源释放

 一、概述:

   JDBC程序运行后,切记要释放程序在运行过程中,创建的对象比如RessultSet,Statement和Connection。尤其是Connection,是非常稀有的资源,用完后必须马上释放,如果Connectiong释放不及时极易导致系统宕机

 

二、释放关键点:

  1.释放代码一定要放在finally语句中,确保程序就算出现异常也能执行到

  2.手动置null,因为调用close()后需要等待垃圾回收,手动置null会加快资源释放速度

 

三、示例代码

package jdbc;

import org.junit.jupiter.api.Test;

import java.sql.*;

/**
 * @author created  by jackie on 2020-4-20
 * @description: 释放资源
 */

public class jdbcTest2 {

@Test
    public void jdbcDemo1(){
    Connection conn = null ;
    Statement stmt = null ;
    ResultSet rs  = null ;
    try {
        //一、加载驱动
        Class.forName("com.mysql.cj.jdbc.Driver");//加载类文件,通过静态代码执行注册驱动

        //二、获得连接
      Connection conn= DriverManager.getConnection("jdbc:mysql://ip:端口号/数据库名","登录账号","登录密码");
        String sql ="select *from jdbc";

        //三、创建执行SQL语句的对象,执行SQL
        stmt = conn.createStatement();
        rs = stmt.executeQuery(sql);
        while(rs.next()){
            int uid =rs.getInt("uid");
            String username =rs.getString("username");
            String password =rs.getString("password");
            String realname = rs.getString("realname");
            System.out.println(uid+"  "+username+"  "+password+"  "+realname);
        }
        
    } catch (ClassNotFoundException e){
        e.printStackTrace();
    } catch (SQLException e) {
        e.printStackTrace();
    }finally{ //四、释放资源
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException ex) {
                // ignore
            }
            rs = null ;//上面close()調用后需要等待垃圾回收,手動置空會更快釋放
        }

        if (stmt != null) {
            try {
                stmt.close();
            } catch (SQLException ex) {
                // ignore
            }
            stmt = null ;
        }

        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException ex) {
                // ignore
            }
            conn = null ;
        }

    }

}
}

备注:

相关demo可以在mysql官方帮助文档中查询到,可以自行网上下载,找不到可以留言写下邮箱,博主看到会发过去

发布了23 篇原创文章 · 获赞 12 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_29796711/article/details/105642746