好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

通过实现ServletContextListener接口创建数据库连接池(C3P0方式)

package cn.sdut.lah.listener; 2 3 import java.sql.Connection; 4 import javax.servlet.ServletContext; 5 import javax.servlet.ServletContextEvent; 6 import javax.servlet.ServletContextListener; 7 8 import com.mchange.v2.c3p0.ComboPooledDataSource; 9 10 11 public class GetConnListener implements ServletContextListener { 12 13 // 启动web应用时,该方法被调用 14 @Override 15 public void contextInitialized(ServletContextEvent sce) { 16 try { 17 // 取得应用的ServletContext实例 18 ServletContext application = sce.getServletContext(); 19 20 // 从配置参数中获取驱动 21 String driver = application.getInitParameter("driver" ); 22 // 从配置参数中获取数据库url 23 String url = application.getInitParameter("url" ); 24 // 从配置参数中获取用户名 25 String user = application.getInitParameter("user" ); 26 // 从配置参数中获取密码 27 String password = application.getInitParameter("pass" ); 28 29 // 创建连接池实例 30 ComboPooledDataSource cpds = new ComboPooledDataSource(); 31 // 设置连接池连接数据库所需要的驱动 32 cpds.setDriverClass(driver); 33 // 设置连接数据库所需的驱动 34 cpds.setJdbcUrl(url); 35 // 设置连接数据库的用户名 36 cpds.setUser(user); 37 // 设置连接数据库的密码 38 cpds.setPassword(password); 39 // 设置连接池的最大连接数 40 cpds.setMaxPoolSize(40 ); 41 // 设置连接池的最小连接数 42 cpds.setMinPoolSize(2 ); 43 // 设置连接池的初始连接数 44 cpds.setInitialPoolSize(10 ); 45 // 设置连接池的缓存statement最大数 46 cpds.setMaxStatements(180 ); 47 48 // 将DataSource设置为application范围内的属性 49 application.setAttribute("ds" , cpds); 50 51 } catch (Exception e) { 52 e.printStackTrace(); 53 } 54 55 } 56 57 // 关闭web应用 58 @Override 59 public void contextDestroyed(ServletContextEvent sce) { 60 ServletContext application = sce.getServletContext(); 61 ComboPooledDataSource ds = (ComboPooledDataSource) application 62 .getAttribute("ds" ); 63 try { 64 Connection conn = ds.getConnection(); 65 if (conn != null ) { 66 conn.close(); 67 } 68 } catch (Exception e) { 69 e.printStackTrace(); 70 } 71 72 } 73 74 }

 

在web.xml中配置参数

  1   <?  xml version="1.0" encoding="UTF-8"  ?> 
  2   <  web-app   version  ="3.0" 
  3       xmlns  ="http://java.sun.com/xml/ns/javaee" 
  4       xmlns:xsi  ="http://www.w3.org/2001/XMLSchema-instance" 
  5       xsi:schemaLocation  ="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"  > 
  6      
  7     <  context-param  > 
  8             <  param-name  > driver </  param-name  > 
  9              <  param-value  > com.mysql.jdbc.Driver </  param-value  > 
 10     </  context-param  > 
 11    
 12     <  context-param  > 
 13              <  param-name  > url </  param-name  > 
 14              <  param-value  > jdbc:mysql://localhost:3306/javaee </  param-value  > 
 15     </  context-param  > 
 16    
 17     <  context-param  > 
 18              <  param-name  > user </  param-name  > 
 19              <  param-value  > root </  param-value  > 
 20     </  context-param  > 
 21     
 22     <  context-param  > 
 23           <  param-name  > pass </  param-name  > 
 24           <  param-value  > ab123456 </  param-value  > 
 25     </  context-param  > 
 36    
 37     <  listener  > 
 38         <  listener-class  > cn.sdut.lah.listener.GetConnListener </  listener-class  > 
 39     </  listener  >   
 40    
 41   </  web-app  > 

 

通过实现ServletContextListener接口创建数据库连接池(C3P0方式)

标签:

查看更多关于通过实现ServletContextListener接口创建数据库连接池(C3P0方式)的详细内容...

  阅读:28次