三种数据池使用方式笔记

目录

一、Tomcat-DBCP

1、首先在tomcat的conf/context.xml中配置如下信息:

2、在项目的web.xml中配置如下信息,就可以在当前应用中使用:

3、使用:

二、Apache-DBCP(DBCP)

1、添加jar包

2、获取DataSoure对象的两种方式(硬编码方式):

(1)通过BasicDataSource

(2)通过BasicDataSourceFactory(配置文件方式):

三、C3P0

1、添加jar包:

2、获取DataSource的两种方式:

(1)硬编码方式

(2)配置文件方式


一、Tomcat-DBCP

1、首先在tomcat的conf/context.xml中配置如下信息:

tomcat7.0版本:

<Resource name="myDBCP"
    auth="Container"
    type="javax.sql.DataSource"
    username="root"
    password="admin"
    url="jdbc:mysql://localhost:3306/hospital"
    maxActive="8"
    maxIdle="4"
    maxWait="5000"
    driverClassName="com.mysql.jdbc.Driver"/> 

tomcat8.0、9.0版本:

将其中的maxActive替换为maxTotal="8"maxWait 替换为maxWaitMillis

注意:要在tomcat的lib下放数据库驱动jar包

2、在项目的web.xml中配置如下信息,就可以在当前应用中使用:

<resource-ref>
    <res-ref-name> myDBCP </res-ref-name>
    <res-type> javax.sql.DataSource </res-type>
    <res-auth> Container </res-auth>
</resource-ref>

3、使用:

InitialContext ic = new InitialContext();
DataSource ds = (DataSource) ic.lookup("java:comp/env/myDBCP");
Connection conn = ds.getConnection();

注:以下都是通过DataSource对象获取数据库连接,只写到获取该对象为止。

二、Apache-DBCP(DBCP

1、添加jar包

commons-dbcp-1.4.jar

commons-pool-1.4.jar

2、获取DataSoure对象的两种方式(硬编码方式):

(1)通过BasicDataSource

public static DataSource getBasicDataSource (){
     BasicDataSource bdcp = new BasicDataSource();
     bdcp.setDriverClassName("com.mysql.jdbc.Driver");
     bdcp.setUsername("root");
     bdcp.setPassword("admin");
     bdcp.setUrl("jdbc:mysql://localhost:3306/hospital");
     bdcp.setInitialSize(10);
     bdcp.setMaxIdle(10);
     bdcp.setMaxActive(10);
     bdcp.setMaxWait(30);
     return bdcp;
}

(2)通过BasicDataSourceFactory(配置文件方式):

a.首先新建一个dbcpconfig.properties文件:

driverClassName = com.mysql.jdbc.Driver
username = root
password = admin
url = jdbc:mysql://localhost:3306/hospital
initialSize = 10
maxIdle = 10
maxActive = 10
maxWait = 30

b.再创建DataSource对象:

public static DataSource getBasicDataSourceFactory (){
    DataSource ds = null;
    Properties prop = new Properties();
    InputStream input = new testDBCP().getClass().getClassLoader().getResourceAsStream("dbpcconfig.properties");
    try {
        prop.load(input);
        ds = BasicDataSourceFactory.createDataSource(prop);
    } catch (IOException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return ds;
}

三、C3P0

1、添加jar包:

c3p0-0.9.5.2.jar

mchange-commons-java-0.2.11.jar

2、获取DataSource的两种方式:

(1)硬编码方式

public static DataSource getDataSource(){
        ComboPooledDataSource c3po = new ComboPooledDataSource();
        try {
            c3po.setDriverClass("com.mysql.jdbc.Driver");
            c3po.setJdbcUrl("jdbc:mysql://localhost:3306/hospital");
            c3po.setUser("root");
            c3po.setPassword("admin");
            c3po.setInitialPoolSize(20);
            c3po.setMaxIdleTime(10);
            c3po.setMaxPoolSize(10);
        }catch (PropertyVetoException e){
            e.printStackTrace();
        }
        return c3po;
}

(2)配置文件方式

a.先创建c3p0-config.xml(文件名必须为这个)文件:

<?xml version="1.0" encoding="utf-8" ?>
<c3p0-config>
    <default-config>
        <!--写一些默认的参数设置-->
        <property name="user">root</property>
        <property name="password">admin</property>
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <property name="checkoutTimeout">30000</property>
    </default-config>

    <named-config name="myConfig">
        <!--自定义一些参数设置,先扫描自定义的,如果没有,就会取默认值,并且可以设置多个-->
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/hospital</property>
    </named-config>
</c3p0-config>

b.获取DataSource对象

public static DataSource getDataSource(){
    return new ComboPooledDataSource("myConfig");//这里的参数为配置文件中自定义name属性的值
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值