JDBC之连接池

来源:互联网 发布:php bool false true 编辑:程序博客网 时间:2024/05/17 23:36

连接池

连接池的概念

连接池:存放多个连接对象的容器,因为,我们没获取一次连接对象,底层会很耗费资源,那连接池,能够高效的管理连接对象。
常见的连接池产品:DBCP C3P0 其实就是第三放jar包

DBCP

简单介绍:

阿帕奇基金组织出品的,高效的管理连接对象

操作步骤

1.导入JDBC和C3P0的jar包
这里写图片描述
2.使用(有两种形式硬编码和软编码两种形式,推荐使用软编码形式)

package org.xupt.dbcp;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLException;import java.util.Properties;import javax.sql.DataSource;import org.apache.commons.dbcp.BasicDataSource;import org.apache.commons.dbcp.BasicDataSourceFactory;public class DBCPDEMO {    public static void main(String[] args) throws SQLException, Exception, IOException {        //硬编码形式        /*        //创建对象        BasicDataSource ds = new BasicDataSource();        //设置参数        ds.setDriverClassName("com.mysql.jdbc.Driver");        ds.setUrl("jdbc:mysql:///mydemo");        ds.setUsername("root");        ds.setPassword("root");        //获得预编译对象        Connection conn = ds.getConnection();        String sql = "insert into student values(?,?)";        PreparedStatement stat = conn.prepareStatement(sql);        stat.setString(1, "朱佩瑶");        stat.setInt(2, 20);        stat.executeUpdate();        ds.close();        stat.close();        */        //软编码格式        Properties prop = new Properties();        prop.load(new FileInputStream("src/dbcp.properties"));        DataSource ds = BasicDataSourceFactory.createDataSource(prop);        Connection conn = ds.getConnection();        String sql = "insert into student values(?,?)";        PreparedStatement stat = conn.prepareStatement(sql);        stat.setString(1, "任凯");        stat.setInt(2, 22);        stat.executeUpdate();    }}

C3P0

简单介绍

C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。

操作步骤

1.导入jar包
2.使用软编码形式编写

public class C3P0demo {    public static void main(String[] args) throws SQLException  {         ComboPooledDataSource ds = new ComboPooledDataSource();         Connection connection = ds.getConnection();         String sql = "insert into student values(?,?)";        PreparedStatement stat = connection.prepareStatement(sql );        stat.setString(1, "我女儿");        stat.setInt(2, -5);        stat.executeUpdate();        ds.close();     }}
原创粉丝点击