借助C3P0连接池访问dept表

来源:互联网 发布:网络协议实践 李毅超 编辑:程序博客网 时间:2024/06/05 17:40

C3P0 连接池的性能比之DBCP要更胜一筹,Hibernate就推荐使用该连接池。C3P0连接池不仅可以自动清理不再使用的Connection,还可以自动清理Statement和ResultSet。

import java.beans.PropertyVetoException;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import com.mchange.v2.c3p0.ComboPooledDataSource;public class C3P0_JDBC {public static void main(String[] args) {ComboPooledDataSource ds=new ComboPooledDataSource();Connection conn=null;try {ds.setDriverClass("oracle.jdbc.driver.OracleDriver");ds.setJdbcUrl("jdbc:oracle:thin:@localhost:1521:orcl");ds.setUser("scott");ds.setPassword("tiger");ds.setMaxPoolSize(40);ds.setMinPoolSize(2);ds.setInitialPoolSize(10);ds.setMaxStatements(100);conn=ds.getConnection();//通过数据源获取数据库连接 Statement stmt=conn.createStatement();ResultSet rs=stmt.executeQuery("select * from dept");while(rs.next()){int deptno=rs.getInt("deptno");String dname=rs.getString("dname");String loc=rs.getString("loc");System.out.println(deptno+"\t"+dname+"\t"+loc);}} catch (PropertyVetoException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}finally{try {conn.close();} catch (SQLException e) {e.printStackTrace();}}}}

public final class ComboPooledDataSource extends AbstractPoolBackedDataSource implements PooledDataSource
public interface PooledDataSource extends DataSource