zoukankan      html  css  js  c++  java
  • c3p0

     在Java开发中,使用JDBC操作数据库的四个步骤如下(可以看上一节内容):

          ①加载数据库驱动程序(Class.forName("数据库驱动类");)
          ②连接数据库(Connection con  = DriverManager.getConnection();)
          ③操作数据库(PreparedStatement stat = con.prepareStatement(sql);stat.executeQuery();)
          ④关闭数据库,释放连接(con.close();)
    这里提出了连接池的概念帮我们简化了步骤
    连接池是一直保持连接的建立,有执行就执行操作。相当于只执行上面的第三步
    数据库连接池负责分配,管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个。
    最小连接数:是连接池一直保持的数据库连接,所以如果应用程序对数据库连接的使用量不大,将会有大量的数据库连接资源被浪费.
    最大连接数:是连接池能申请的最大连接数,如果数据库连接请求超过次数,后面的数据库连接请求将被加入到等待队列中,这会影响以后的数据库操作

    c3p0就是连接池的一种实现帮我们简化了步骤,c3p0有两种配置方法,
    这里只讲简单的通过xml文件配置,将这个文件放到项目的src下--我一般放置在maven项目的resources下
    <?xml version="1.0" encoding="UTF-8"?>
    <c3p0-config>
    <!-- 默认配置,只可以出现一次 -->
        <default-config>
            <!-- 配置JDBC 四个基本属性 -->
            <property name="driverClass">com.mysql.cj.jdbc.Driver</property>
            <property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/goods?characterEncoding=utf8&amp;useSSL=false
            </property>
            <property name="user">zhangsan</property>
            <property name="password">123123</property>
            <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->
            <property name="acquireIncrement">3</property>
            <!-- 初始化数据库连接池时连接的数量 -->
            <property name="initialPoolSize">5</property>
            <!-- 数据库连接池中的最小的数据库连接数 -->
            <property name="minPoolSize">2</property>
            <!-- 数据库连接池中的最大的数据库连接数 -->
            <property name="maxPoolSize">10</property>
        </default-config>
        
        <named-config name="mysql">
            <!-- 配置JDBC 四个基本属性 -->
            <property name="driverClass">com.mysql.cj.jdbc.Driver</property>
            <property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/goods?characterEncoding=utf8&amp;useSSL=false
            </property>
            <property name="user">zhangsan</property>
            <property name="password">123123</property>
            <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->
            <property name="acquireIncrement">3</property>
            <!-- 初始化数据库连接池时连接的数量 -->
            <property name="initialPoolSize">5</property>
            <!-- 数据库连接池中的最小的数据库连接数 -->
            <property name="minPoolSize">2</property>
            <!-- 数据库连接池中的最大的数据库连接数 -->
            <property name="maxPoolSize">10</property>
        </named-config>
        
    </c3p0-config>

    java代码如下---需要导入c3p0包

    package db;
    import com.mchange.v2.c3p0.ComboPooledDataSource;
    import java.sql.*;
    public class TestC3p0 {
        public static void main(String[] args) {
            ComboPooledDataSource ds=new ComboPooledDataSource();
            Connection conn=null;
            Statement statement=null;
            try {
                conn =ds.getConnection();
                String sql ="select * from t_user_test";
                statement =conn.createStatement();
                ResultSet set =statement.executeQuery(sql);
                ResultSetMetaData data=set.getMetaData();
                System.out.println(data.getColumnCount()); //一共有多少列
                System.out.println(data.getColumnName(1)); //第一列的列名
    
                while (set.next()) {
                    System.out.println(set.getString(1)+" "+set.getString(2)+" "+set.getString(3));
                }
            } catch (Exception e) {
                e.printStackTrace();
            }finally {
                try {
                    if(conn!=null){
                        conn.close();
                        statement.close();
                    }
    
                } catch (SQLException e) {
                    e.printStackTrace();
                }
    
            }
        }
    
    
    
    }
     
  • 相关阅读:
    高斯消元学习
    HDU 4596 Yet another end of the world(解一阶不定方程)
    Codeforces Round #318 div2
    HDU 4463 Outlets(一条边固定的最小生成树)
    HDU 4458 Shoot the Airplane(计算几何 判断点是否在n边形内)
    HDU 4112 Break the Chocolate(简单的数学推导)
    HDU 4111 Alice and Bob (博弈)
    POJ 2481 Cows(线段树单点更新)
    HDU 4288 Coder(STL水过)
    zoj 2563 Long Dominoes
  • 原文地址:https://www.cnblogs.com/ysmdbk/p/11041354.html
Copyright © 2011-2022 走看看