/*
 *   编写快速 入门的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;
   }
   
  }
 }

【数据库】java链接jdbc 释放资源的更多相关文章

  1. java链接JDBC中的?问题

    String sql = "select * from student where name= ?"; PreparedStatement pst = conn.prepareSt ...

  2. java 链接jdbc

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sq ...

  3. 写给小白的JAVA链接MySQL数据库的步骤(JDBC):

    作为复习总结的笔记,我罗列了几个jdbc步骤,后边举个简单的例子,其中的try块请读者自行处理. /* * 1.下载驱动包:com.mysql.jdbc.Driver;网上很多下载资源,自己找度娘,此 ...

  4. Java数据库基础(JDBC)

    JDBC(Java Data Base Connectivity):SUN公司为了简化统一对数据库的操作,定义了一套Java操作数据库的规范,称之为JDBC: 这样应用程序就不需要关注数据库底层的详细 ...

  5. ava基础MySQL存储过程 Java基础 JDBC连接MySQL数据库

    1.MySQL存储过程   1.1.什么是存储过程 带有逻辑的sql语句:带有流程控制语句(if  while)等等 的sql语句   1.2.存储过程的特点 1)执行效率非常快,存储过程是数据库的服 ...

  6. JAVA使用JDBC技术操作SqlServer数据库执行存储过程

    Java使用JDBC技术操作SqlServer数据库执行存储过程: 1.新建SQLSERVER数据库:java_conn_test 2.新建表:tb_User 3.分别新建三个存储过程: 1>带 ...

  7. Java数据库操作(JDBC)

    JDBC Java数据库连接(Java DataBase Connectivity,JDBC)用于在Java程序中实现数据库操作功能,它提供了执行SQL语句.访问各种数据库的方法,并为各种不同的数据库 ...

  8. java链接数据库--Mysql

    /************************************************************************* > File Name: Mysql.jav ...

  9. Java之JDBC操作数据库

    DBC JDBC就是一套接口,真正执行的是jar包里得实现类,通过泛型对象来执行实现类里的方法. 步骤: ###1.导入驱动jar包到工程中 ###2.编写代码注册驱动,我们要让程序知道用的是哪个驱动 ...

随机推荐

  1. leetcode-884-两句话中的不常见单词

    题目描述: 给定两个句子 A 和 B . (句子是一串由空格分隔的单词.每个单词仅由小写字母组成.) 如果一个单词在其中一个句子中只出现一次,在另一个句子中却没有出现,那么这个单词就是不常见的. 返回 ...

  2. Linux 线程调度策略与线程优先级

    Linux内核的三种调度策略 SCHED_OTHER 分时调度策略. 它是默认的线程分时调度策略,所有的线程的优先级别都是0,线程的调度是通过分时来完成的.简单地说,如果系统使用这种调度策略,程序将无 ...

  3. P1091 合唱队列

    合唱队列 原题:传送门 核心代码: /* 方法求出每一个点的最长升子序列和最长降子序列,再加到该点上 通过循环比较哪个点最大,再用总长减去该点长度即是答案 */ #include<iostrea ...

  4. [转] 遇见 TiDB - 分布式关系数据库

    [From] http://kuaibao.qq.com/s/20180510G0UFL000?refer=cp_1026 最近TiDB掀起了一波分布式数据库的热潮,公司也在着手准备TiDB的落地工作 ...

  5. 完美解决linux系统sublime不能输入中文

    1.下载git项目:sublime-text-imfix,主要是要用到里面的两个文件   subl和libsublime-imfix.so git项目路径:https://github.com/lyf ...

  6. windows系统PHP7开启curl_init

    1.php.ini,开启extension=php_curl.dll,去掉去掉前面的“;” 2.检查php.ini的extension_dir值是哪个目录(也就是插件扩展目录,比如php_curl.d ...

  7. PHP 删除 数组 指定成员

    1. unset删除某一个 特定成员 $arr[] = ; $arr[] = ; $arr[] = ; ]); var_dump($arr); array() { []=> ) []=> ...

  8. Chrome DevTools的15个使用技巧(译)

    谷歌浏览器如今是Web开发者们所使用的最流行的网页浏览器.伴随每六个星期一次的发布周期和不断扩大的强大的开发功能,Chrome变成了一个必须掌握的工具.大多数前端开发者可能熟悉关于chorme的许多特 ...

  9. 18.async函数

    1.含义 async 函数是什么?一句话,它就是 Generator 函数的语法糖. 前文有一个 Generator 函数,依次读取两个文件. var fs = require('fs'); var ...

  10. 逻辑备份,mysqldump,SELECT…INTO OUTFILE,恢复

    逻辑备份 mysqldump mysqldump备份工具最初由Igor Romanenko编写完成,通常用来完成转存(dump)数据库的备份以及不同数据库之间的移植,例如从低版本的MySQL数据库升级 ...