jdbc连接池配置

/**

访问数据库的相关参数写入src下的config.properties

**/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Locale;
import java.util.ResourceBundle;

import org.apache.commons.dbcp.ConnectionFactory;
import org.apache.commons.dbcp.DriverManagerConnectionFactory;
import org.apache.commons.dbcp.PoolableConnectionFactory;
import org.apache.commons.dbcp.PoolingDriver;
import org.apache.commons.pool.ObjectPool;
import org.apache.commons.pool.impl.GenericObjectPool;

@SuppressWarnings("unchecked")
public class PoolManager
{
 private static String  driver  = null; // 驱动
 private static String  url   = null; // URL
 private static String  name   = null; // 用户名
 private static String  password  = null; // 密码
 private static Class  driverClass = null;
 private static ObjectPool connectionPool = null;
 private static String  poolname  = null;
 private static ResourceBundle rb;
 
 /**
  * 初始化数据源
  */
 private static synchronized void initDataSource()
 {
  if(driverClass == null)
  {
   try
   {
    driverClass = Class.forName (driver);
   }catch (ClassNotFoundException e)
   {
    e.printStackTrace ();
   }
  }
 }
 
 /**
  * 装配配置文件 initProperties
  */
 private static void loadProperties()
 {
  rb = ResourceBundle.getBundle ("config",Locale.getDefault ());;
  driver = rb.getString ("dataSource.driver");
  url = rb.getString ("dataSource.jdbcUrl");
  name = rb.getString ("dataSource.user");
  password = rb.getString ("dataSource.password");
  poolname = rb.getString ("dataSource.poolname");
 }
 
 /**
  * 连接池启动
  */
 public static void StartPool()
 {
  loadProperties ();
  initDataSource ();
  if(connectionPool != null)
  {
   ShutdownPool ();
  }
  try
  {
   connectionPool = new GenericObjectPool (null);
   ConnectionFactory connectionFactory = new DriverManagerConnectionFactory (
    url,name,password);
   new PoolableConnectionFactory (connectionFactory,connectionPool,
    null,null,false,true);
   Class.forName ("org.apache.commons.dbcp.PoolingDriver");
   PoolingDriver driver = (PoolingDriver) DriverManager.getDriver ("jdbc:apache:commons:dbcp:");
   driver.registerPool (poolname,connectionPool);
   System.out.println ("装配连接池OK");
  }catch (Exception e)
  {
   e.printStackTrace ();
  }
 }
 
 /**
  * 释放连接池
  */
 public static void ShutdownPool()
 {
  try
  {
   PoolingDriver driver = (PoolingDriver) DriverManager.getDriver ("jdbc:apache:commons:dbcp:");
   driver.closePool (poolname);
  }catch (SQLException e)
  {
   e.printStackTrace ();
  }
 }
 
 /**
  * 取得连接池中的连接
  */
 public static Connection getConnection()
 {
  Connection conn = null;
  if(connectionPool == null)
   StartPool ();
  try
  {
   conn = DriverManager.getConnection ("jdbc:apache:commons:dbcp:"
    + poolname);
  }catch (SQLException e)
  {
   e.printStackTrace ();
  }
  return conn;
 }
 
 /**
  * 获取连接 getConnection
  *
  * @param name
  */
 public static Connection getConnection(String name)
 {
  return getConnection ();
 }
 
 /**
  * 释放连接 freeConnection
  *
  * @param conn
  */
 public static void freeConnection(Connection conn)
 {
  if(conn != null)
  {
   try
   {
    conn.close ();
   }catch (SQLException e)
   {
    e.printStackTrace ();
   }
  }
 }
 
 /**
  * 释放连接 freeConnection
  *
  * @param name
  * @param con
  */
 public static void freeConnection(String name, Connection con)
 {
  freeConnection (con);
 }
 
 /**
  * 例子 main
  *
  * @param args
  */
 public static void main(String [] args)
 {
  try
  {
   Connection conn = PoolManager.getConnection ();
   System.out.println (conn.isClosed ());
   if(conn != null)
   {
    Statement statement = conn.createStatement ();
    ResultSet rs = statement.executeQuery ("select * from test2..log");
    int c = rs.getMetaData ().getColumnCount ();
    while (rs.next ())
    {
     System.out.println ();
     for (int i = 1;i <= c;i++ )
     {
      System.out.print (rs.getObject (i));
     }
    }
    rs.close ();
   }
   PoolManager.freeConnection (conn);
  }catch (SQLException e)
  {
   e.printStackTrace ();
  }
  
 }
 
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是Tomcat 8.5.39 JDBC连接配置的步骤: 1. 首先,在Tomcat的lib目录下添加MySQL数据库的驱动程序(比如mysql-connector-java-5.1.45-bin.jar)。 2. 在Tomcat的conf目录下创建context.xml文件,用于配置JDBC连接。在context.xml文件中添加如下内容: ``` <?xml version='1.0' encoding='utf-8'?> <Context> <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="yourusername" password="yourpassword" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/yourdatabasename"/> </Context> ``` 其中,name属性是连接的名称,username和password属性是数据库的登录用户名和密码,driverClassName属性是数据库驱动程序的类名,url属性是数据库的连接URL。 3. 在Web应用程序的web.xml文件中添加如下内容,以便在应用程序中使用连接: ``` <resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/TestDB</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> ``` 其中,res-ref-name属性的值应与context.xml文件中定义的name属性的值相同。 4. 在应用程序中通过javax.naming.InitialContext类获取数据库连接,代码如下: ``` Context ctx = new InitialContext(); DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/TestDB"); Connection conn = ds.getConnection(); ``` 这样就可以使用Tomcat的JDBC连接了,不需要使用第三方的连接库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值