使用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 @Override15 public void contextInitialized(ServletContextEvent sce) {16 try {17 // 取得应用的ServletContext实例18 ServletContext application = sce.getServletContext();19 20 // 从配置参数中获取驱动21 String driver = application.getInitParameter("driver");22 // 从配置参数中获取数据库url23 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 @Override59 public void contextDestroyed(ServletContextEvent sce) {60 ServletContext application = sce.getServletContext();61 ComboPooledDataSource ds = (ComboPooledDataSource) application62 .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 26 7 8 11 12driver 9com.mysql.jdbc.Driver 1013 16 17url 14jdbc:mysql://localhost:3306/javaee 1518 21 22user 19root 2023 36 37pass 24ab123456 2538 40 41cn.sdut.lah.listener.GetConnListener 39