day2-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代码如下

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();
            }

        }
    }



}
 

猜你喜欢

转载自www.cnblogs.com/ysmdbk/p/11041354.html
今日推荐