JDBC连接池

一、连接池的作用以及优点:

        初始化的时候就已经创建好几个连接对象 连接数据库时候, 直接从连接池中获取一个连接对象使用 使用完, 归还给连接池, 可以让连接对象重复利用, 从而节约空间, 提高效率

二、连接池的设计思路:

        1.初始化: 需要一个集合来存储连接对象

        2.getConnection(): 从集合中获取一个连接

        3.connection.close(): 把连接, 重新加到集合中 重点: 修改close方法

三、C3P0连接池

        实现类:ComboPooledDataSource

        连接方法:

                1.手动 

cpds.setDriverClass( "com.mysql.cj.jdbc.Driver" );
cpds.setJdbcUrl( "jdbc:mysql://数据库名" );
cpds.setUser("root");
cpds.setPassword("123456");

                2.配置文件(配置文件必须放在src下且命名必须为:c3p0-config.xml)

<c3p0-config>
    <!-- 默认配置 -->
    <default-config>
        <property name="automaticTestTable">con_test</property>
        <property name="checkoutTimeout">30000</property>
        <property name="idleConnectionTestPeriod">30</property>
        <property name="initialPoolSize">10</property>
        <property name="maxIdleTime">30</property>
        <property name="maxPoolSize">100</property>
        <property name="minPoolSize">10</property>
        <property name="maxStatements">200</property>
        <!-- 注册驱动 -->
        <property name="driverClass">com.mysql.cj.jdbc.Driver</property>
        <!-- url -->
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/text?serverTimezone=GMT</property>
        <!-- 用户名 -->
        <property name="user">root</property>
        <!-- 密码 -->
        <property name="password">123456</property>

        <user-overrides user="test-user">
            <property name="maxPoolSize">10</property>
            <property name="minPoolSize">1</property>
            <property name="maxStatements">0</property>
        </user-overrides>

    </default-config>

    <!-- This app is massive! -->
    <named-config name="intergalactoApp">
        <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>

        <!-- he's important, but there's only one of him -->
        <user-overrides user="master-of-the-universe">
            <property name="acquireIncrement">1</property>
            <property name="initialPoolSize">1</property>
            <property name="minPoolSize">1</property>
            <property name="maxPoolSize">5</property>
            <property name="maxStatementsPerConnection">50</property>
        </user-overrides>
    </named-config>
</c3p0-config>

四、druid连接池

        实现类DruidDataSource

        连接方式

                1.手动

dds.setDriverClassName("com.mysql.cj.jdbc.Driver");
dds.setUrl("jdbc:mysql://localhost:3306/text?serverTimezone=GMT");
dds.setUsername("root");
dds.setPassword("123456");

               2.配置文件(位置随意,创建实现类对象是需要传入一个配置文件对象)

Properties props = new Properties();
props.load(DruidDemo.class.getResourceAsStream("druid.properties"));
DataSource dataSource = DruidDataSourceFactory.createDataSource(props);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值