/*
 *   编写快速 入门的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. ElasticSearch 系列随笔

    1.ElasticSearch 常用设置 2.ElasticSearch 从2.2升级到6.2.4碰到的问题 3.ElasticSearch 因为磁盘空间不够引起的数据插入错误.(message [C ...

  2. 实验一 c++简单程序设计

    一.实验内容 1.ex 2_28 (1) 用if...else判断 #include<iostream> using namespace std; int main() { char i; ...

  3. jenkins+appium android app自动化测试

    jenkins安装 pytest+jenkins安装+allure报告 新建任务 其他默认,保存 立即构建 test_login.py from src.pages import login_page ...

  4. C++类的构造函数及定义

    定义一个普通的类时,一定要定义它自己的构造函数.原因有三:第一个原因是编译器只有在发现类不包含任何构造函数的情况下才会替我们生成一个默认的构造函数,一旦我们定义了一些其他的构造函数,那么除非我们再定义 ...

  5. The Annoying Bug

    log里看不出问题,直接客户端就disconnected. gdb 挂了也不会停住,继续跑得跟正常人似的 再连根本不正常的了. 硬件: a , 主板CPU更换过 b,USB3.0 软件: 无有更换,但 ...

  6. create-react-app安装出错问题解决

    在用create-react-app的时候 报错 错误如下图: 在SF上查到说是或许是因为国内npm拉去资源,拉去不到的问题,可以试着从解决创建create-react-app慢的方法着手: 解决方法 ...

  7. 关于Arduino串口读写HEX

    每次和硬件层进行调试的时候,就容易遇到数据格式问题.这不,继上次Matlab上的hex发送后,又遇到了Arduino上接收hex,并进行对比处理的问题.由于单片机级别的处理器只能以字节形式接收,因此无 ...

  8. (转)架构师之DNS实战CentOS7VSCentOS6

    原文:https://www.abcdocker.com/abcdocker/1298 CentOS7上使用bind9搭建DNS主从服务器-----http://blog.51cto.com/yich ...

  9. R302指识别开发笔记

    一.相关概念 1.存储容量:500枚指纹,地址范围0-499. 2.用户记事本:模块内部为用户开辟了512Bytes的FLASH空间用于存放用户数据该存储空间称为用户记事本,该记事本逻辑上被分成16个 ...

  10. 创建自己的区块链游戏SLOT——以太坊代币(三)

    一个以太坊合约版本的轮盘游戏,向合约转账ETH,有几率获得3,5,10,100倍奖励 合约地址:0x53DA598E70a1505Ad95cBF17fc5DCA0d2c51174b 捐赠ETH地址:0 ...