Java Web数据库连接池

来源:互联网 发布:易语言键盘钩子源码 编辑:程序博客网 时间:2024/06/12 21:23

javaWeb 数据库连接池连接数据库

需要的公共jar包 mysql-connector-java-5.0.8-bin.jar(mysql数据库)     ojdbc14.jar(oracle数据库)

A.DBCP 需要jar包: commons-dbcp.jar,commons-pool.jar 以及 .properties 配置文件(直接放src目录下)

 View Code
复制代码
package de.bvb.utils;import java.io.InputStream;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.Properties;import javax.sql.DataSource;import org.apache.commons.dbcp.BasicDataSourceFactory;public class JdbcUtils_DBCP {    private static DataSource ds = null;    static {        try {            InputStream in = JdbcUtils_DBCP.class.getClassLoader().getResourceAsStream("dbcpconfig.properties");            Properties prop = new Properties();            prop.load(in);            ds = BasicDataSourceFactory.createDataSource(prop);        } catch (Exception e) {            throw new ExceptionInInitializerError(e);        }    }    public static Connection getConnection() throws SQLException {        return ds.getConnection();    }    public static void release(Connection conn, Statement st, ResultSet rs) {        if (rs != null) {            try {                rs.close(); //throw new             } catch (Exception e) {                e.printStackTrace();            }            rs = null;        }        if (st != null) {            try {                st.close();            } catch (Exception e) {                e.printStackTrace();            }            st = null;        }        if (conn != null) {            try {                conn.close();            } catch (Exception e) {                e.printStackTrace();            }        }    }}
复制代码

B.C3P0  需要jar包: c3p0-0.9.2-pre1.jar,mchange-commons-0.2.jar 以及 c3p0-config.xml 配置文件(直接放src目录下,并且文件名包括后缀名不能修改成别的)

复制代码
<c3p0-config>    <default-config>        <property name="driverClass">com.mysql.jdbc.Driver</property>        <property name="jdbcUrl">jdbc:mysql://localhost:3306/mysql</property>        <property name="user">root</property>        <property name="password">root</property>                <property name="initialPoolSize">10</property>        <property name="maxIdleTime">30</property>        <property name="maxPoolSize">20</property>        <property name="minPoolSize">5</property>        <property name="maxStatements">200</property>    </default-config>        <named-config name="mysql">        <property name="acquireIncrement">50</property>        <property name="initialPoolSize">100</property>        <property name="minPoolSize">50</property>        <property name="maxPoolSize">1000</property><!-- intergalactoApp adopts a different approach to configuring statement caching -->        <property name="maxStatements">0</property>        <property name="maxStatementsPerConnection">5</property>    </named-config>        <named-config name="oracle">        <property name="acquireIncrement">50</property>        <property name="initialPoolSize">100</property>        <property name="minPoolSize">50</property>        <property name="maxPoolSize">1000</property><!-- intergalactoApp adopts a different approach to configuring statement caching -->        <property name="maxStatements">0</property>        <property name="maxStatementsPerConnection">5</property>    </named-config></c3p0-config>
复制代码
复制代码
package de.bvb.utils;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import com.mchange.v2.c3p0.ComboPooledDataSource;public class JdbcUtils_C3P0 {    private static ComboPooledDataSource ds = null;    static {        try {            ds = new ComboPooledDataSource(); //加载xml文件中默认的配置,也就是<default-config>下面的配置            //  ds = new ComboPooledDataSource("mysql"); //加载xml文件中的 <named-config name="mysql">下面的配置        } catch (Exception e) {            throw new ExceptionInInitializerError(e);        }    }    public static Connection getConnection() throws SQLException {        return ds.getConnection();    }    public static void release(Connection conn, Statement st, ResultSet rs) {        if (rs != null) {            try {                rs.close();            } catch (Exception e) {                e.printStackTrace();            }            rs = null;        }        if (st != null) {            try {                st.close();            } catch (Exception e) {                e.printStackTrace();            }            st = null;        }        if (conn != null) {            try {                conn.close();            } catch (Exception e) {                e.printStackTrace();            }        }    }}
复制代码
0 0