使用DBCP创建连接池

字体大小: 中小 标准 ->行高大小: 标准
一般数据库访问代码放在一个数据库访问的工具包中。
DBCP的使用步骤:
(1)加载三个包进入java项目:三个包分别为:commons-collections-x.x.jar,commons-dbcp-x.x.x.jar 和commons-pool.jar。
(2)申明一个DataSource(例如:DataSource myDataSource=null);
(3)实例化申明的DataSource,使用BasicDataSourceFactory工厂申城一个实例, myDataSource = BasicDataSourceFactory.createDataSource(prop); 注意参数为属性对象,生成工厂可用的属性对象有两种方法:
方法一(代码实现):
Properties prop = new Properties();
prop.setProperty("driver", "com.mysql.jdbc.Driver");
prop.setProperty("url", "jdbc:mysql://localhost:3306/jdbc");
prop.setProperty("username", "root");
prop.setProperty("password", "123");  
myDataSource = BasicDataSourceFactory.createDataSource(prop); 
方法二(配置文件实现,推荐方法):
Properties prop = new Properties();
InputStream inputStream = JdbcUtils.class.getClassLoadera().getResourceAsStream("dbcpconfig.properties");
prop.load(inputStream);
myDataSource = BasicDataSourceFactory.createDataSource(prop);
具体代码实现:
import java.util.*;
import java.io.InputStream;
import java.sql.*;
import org.apache.commons.dbcp.BasicDataSourceFactory;
public class JdbcUtils
{
 private static DataSource myDataSource = null;
 public JdbcUtils()
 {}
 Static   //静态代码块优先于构造方法之前执行
 {
  try
  {
   Class.forName("com.mysql.jdbc.Driver");
   Properties prop = new Properties();
   InputStream inputStream = JdbcUtils.class.getClassLoader().getResourceAsStream("dbcpconfig.properties");
   prop.load(inputStream);
   myDataSource = BasicDataSourceFactory.createDataSource(prop);
  }
  catch (Exception e)
  {
   throw new ExceptionInInitializerError(e);
  }
 }
 
 public static Connection getConnection() throws SQLException
 {
  return myDataSource.getConnection();
 }
 public static void free(ResultSet rs, Statement st, Connection conn)
 {
  try
  {
   if (rs != null) rs.close();
  }
  catch (SQLException e)
  {
   e.printStackTrace();
  }
  finally
  {
   try
   {
    if (st != null) 
     st.close();
   }
   catch (SQLException e)
   {
    e.printStackTrace();
   }
   finally
   {
    try
    {
     if (conn != null)  conn.close();
    }
    catch (Exception e)
    {
     e.printStackTrace();
    }
   }
  }
 }
}

此文章由 http://www.ositren.com 收集整理 ,地址为: http://www.ositren.com/htmls/70235.html