通过实现ServletContextListener接口创建数据库连接池(C3P0方式)
使用Listener步骤
1. 定义Listener实现类
2. 在web.xml中配置(或使用Annotation)
使用C3P0方式创建数据库连接池需要添加的jar包
1.c3p0-0.9.5.jar
2.c3p0-oracle-thin-extras-0.9.5.jar
3.mchange-commons-java-0.2.9.jar
1 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>
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。