zoukankan      html  css  js  c++  java
  • 【数据库】java链接jdbc 释放资源


    /*
     *   编写快速 入门的jdbc 程序 :
     *  
     *    1. 先导入 具体的驱动jar包
     *    2. 编写一个类 , 写jdbc 的程序
     *
     *  具体的编写 java类的 代码的步骤:
     *   
     *   第一步: 注册驱动 --- 告诉 具体的要操作的是那个 数据库
     *   第二步: 建立与 数据库的链接---Connection
     *   第三步: 获得可以发送  sql 语句的 statement 对象
     *   第四步: 执行sql 语句, 拿到 结果集对象
     *   第五步: 解析结果集中的数据
     *   第六步: 释放资源
     *
     */

    @Test
     public void test2() {
      
      Connection conn = null;
      Statement stmt = null;
      ResultSet rs = null;
      try {
       // 第一步: 注册驱动
    //   DriverManager.registerDriver(new Driver());
       
       //这里 本来是 加载字节码, 但是 加载字节码的 时候 又 会执行 这个Driver类的静态代码快, 而静态代码块 有完成了驱动的注册, 所以
       // 这行代码 就是那么巧 ...
       Class.forName("com.mysql.jdbc.Driver");
       
       // 第二步: 建立与 数据库的链接
       //  http://localhost:8080/day15/1.html
       
       //通常 可以简写 为 :  jdbc:mysql:///day15_jdbc
       conn = DriverManager.getConnection("jdbc:mysql:///day15_jdbc", "root", "abc");
       
       
       
       // 第三步:获得可以发送  sql 语句的 statement 对象
       
       stmt = conn.createStatement();
       
       // 第四步: 执行sql 语句, 拿到 结果集对象
       // rs , 就封装了这个查询的结果
       rs = stmt.executeQuery("select * from users");
       
       // 第五步: 解析结果集中的数据
       while(rs.next()){
        
        int id = rs.getInt("id");
        String username = rs.getString("username");
        String password = rs.getString("password");
        String nickname = rs.getString("nickname");
        
        System.out.println("id: " + id+",username : " + username+", password : " + password +", nickname : " + nickname);
       }
       
       
      } catch (Exception e) {
       e.printStackTrace();
      }finally{
    //   第六步: 释放资源  --- 由于 数据库 链接非常的稀缺, 所以 在 操作完成后,记得释放资源 , 都会放到 finally 代码块 中
       
       if(rs!=null){
        try {
         rs.close();
        } catch (SQLException e) {
         e.printStackTrace();
        }
        rs =null;
       }
       
       if(stmt!=null){
        try {
         stmt.close();
        } catch (SQLException e) {
         e.printStackTrace();
        }
        stmt=null;
       }
       
       if(conn!=null){
        try {
         conn.close();
        } catch (SQLException e) {
         e.printStackTrace();
        }
        conn=null;
       }
       
      }
     }
     

  • 相关阅读:
    codevs 1115 开心的金明
    POJ 1125 Stockbroker Grapevine
    POJ 2421 constructing roads
    codevs 1390 回文平方数 USACO
    codevs 1131 统计单词数 2011年NOIP全国联赛普及组
    codevs 1313 质因数分解
    洛谷 绕钉子的长绳子
    洛谷 P1276 校门外的树(增强版)
    codevs 2627 村村通
    codevs 1191 数轴染色
  • 原文地址:https://www.cnblogs.com/xiaofu007/p/10508032.html
Copyright © 2011-2022 走看看