使用JDBC建立数据库连接的过程

来源:互联网 发布:java web 视频播放 编辑:程序博客网 时间:2024/04/30 19:11

总体来说,一套完整的JDBC的使用过程分为六个步骤

载入数据库驱动

Class.forName(DBDRIVER);

创建连接

Connection conn = (Connection) DriverManager.getConnection(DBURL, DBUSER, DBPASS);

创建语句

PreparedStatement ps = (PreparedStatement) conn.prepareStatement(sql);

执行语句

ResultSet rs = ps.executeQuery();

处理结果

关闭数据库连接

加载数据库驱动是一件相当耗费资源的工作。因此在使用JDBC作为APPLICATION连接数据库的手段时,经常要通过建立工具类的方式来对代码进行优化

首先,工具类应该是单例的,这样可以保证在内存中只存在一个数据库驱动的实例,减少资源占用

在工具类中,首先使用静态代码块加载数据库驱动

既然是单例的,那么首先必须有一个方法来获得一个该类的实例

public static JdbcUtilsSingleton getInstance() {
  //双重检验应用程序中是否存在单例类的实例
  if (instance == null){
   //同步
   synchronized (JdbcUtilsSingleton.class) {
    if (instance == null){
     //延迟加载实例
     instance = new JdbcUtilsSingleton();
    }
   }
  }
  return instance;
 }

工具类的方法一般包括两个主要方法,

一是返回一个数据库的连接实例

public Connection getConnection() throws SQLException{
  return (Connection) DriverManager.getConnection(DBURL, DBUSER, DBPASS);
 }

二是负责关闭数据库的连接

public void free(ResultSet rs, Statement st, Connection conn){
  try {
   if (rs != null){
    rs.close();
    System.out.println("关闭查询结果集");
   }
  } catch (SQLException e) {
   e.printStackTrace();
  } finally {
   try {
    if (st != null){
     st.close();
     System.out.println("关闭查询");
    }
   } catch (SQLException e) {
    e.printStackTrace();
   } finally {
    try {
     if (conn != null){
      conn.close();
      System.out.println("关闭连接");
     }
    } catch (SQLException e) {
     e.printStackTrace();
    } finally {
     
    }
   }
  }
 }