利用Oracle自带的连接池类的一例

来源:互联网 发布:社交软件有那些 编辑:程序博客网 时间:2024/05/20 17:26
/**
  封装了对数据库的连接,用于处理SQL语句。
  @author:yancheng(sharetop studio)
  @version:1.0.0
  */
  package DBUtil;
  
  import java.sql.*;
  import java.io.*;
  import javax.sql.*;
  import javax.naming.*;
  import oracle.jdbc.pool.*;
  
  public class OraPooledSQL
  {
  
  private PooledConnection dbpool;
  
  /**
  @param ConnectionURL 连接名 如: jdbc:odbc:myODBC
  @param UserID 用户名
  @param PassWord 用户密码
  */
  public OraPooledSQL(String ConnectionURL,String UserID,String PassWord)
  {
  
  try{
  
  OracleConnectionPoolDataSource ocpds = new OracleConnectionPoolDataSource();
  
  ocpds.setURL(ConnectionURL);
  
  ocpds.setUser(UserID);
  
  ocpds.setPassword(PassWord);
  
  dbpool = ocpds.getPooledConnection();
  
  }
  catch(Exception ex)
  {
  System.err.println("Error in PooledSQL-construct : ");
  ex.printStackTrace(System.err);
  }
  
  }//end OraPooledSQL
  
  //close dbpool
  protected void finalize()
  {
  if( dbpool != null )
  {
  try
  {
  dbpool.close();
  }
  catch(Exception ex)
  {
  }
  }
  }
  
  /**
  用于更新、添加或删除的SQL语句
  @param SQL SQL语句字串,如:insert into tablename values(id,......)
  */
  public int Update(String SQL)
  {
  Statement stmt = null;
  int rc = 0;
  
  Connection connection = null;
  
  try
  {
  connection = dbpool.getConnection();
  stmt = connection.createStatement();
  rc = stmt.executeUpdate(SQL);
  }
  
  catch( Exception ex )
  {
  System.err.println("Error in Update - OraPooledSQL : ");
  ex.printStackTrace(System.err);
  }
  
  return rc;
  
  } //end Update()
  
  /**
  用于查询的SQL语句
  @param SQL SQL语句字串,如:select * from tablename
  */
  public ResultSet Query(String SQL)
  {
  Statement stmt = null;
  ResultSet rs = null;
  Connection connection = null;
  
  try
  {
  connection = dbpool.getConnection();
  stmt = connection.createStatement();
  rs = stmt.executeQuery(SQL);
  }
  
  catch( Exception ex )
  {
  System.err.println("Error in Query - SQLBean : ");
  ex.printStackTrace(System.err);
  }
  
  return rs;
  
  } //end Query
  
  } //end Class  
原创粉丝点击