• 【数据库】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;
       }
       
      }
     }
     

  • 相关阅读:
    [转载]数据库外键的使用
    [转载]我如何筛选简历与选择人员
    [转载]asp.net中使用Row_Number函数分页
    五一,给心情放个假酷狗电台桌面版
    win32建立弹出式菜单
    GetMessage用法错误导致程序不能退出
    win32在程序当中引用菜单
    WM_COMMAND和WM_KEYDOWN消息的wParam,lParam参数
    单链表的释放内存free(delete)的顺序
    win32 GetMenu()和GetSubMenu()
  • 原文地址:https://www.cnblogs.com/xiaofu007/p/10508032.html
Copyright © 2020-2023  润新知