java----连接池C3p0使用的补充

C3p0数据库的连接方式是目前市场场最为广泛的类型之一

本篇主要你演示C3p0使用文件配置和不使用文件配置的两种操作方式

#######使用文件配置

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;


import com.dbutil.zyz.ConnLink;
import com.mchange.v2.c3p0.ComboPooledDataSource;

public class C3p0Demo1 {
//首先演示下C3p0不使用配置文件的连接数据库的方式
        static ConnLink connlink=new ConnLink();
        static Connection conn=null;
        static PreparedStatement pstmt=null;
        public static void main(String[] args) throws SQLException {
        try {
            //总体步骤配置如下,可以作为模板使用
            
            //1.创建datasource
            ComboPooledDataSource dataSource=new ComboPooledDataSource();
            //2.设置连接数据的信息
            dataSource.setJdbcUrl("jdbc:mysql://localhost/test");
            dataSource.setDriverClass("com.mysql.jdbc.Driver");
            dataSource.setUser("root");
            dataSource.setPassword("root");
            
            //得到连接对象
            conn=dataSource.getConnection();
            String sql="insert into blank values(null,?,?)";
            pstmt=conn.prepareStatement(sql);
            pstmt.setString(1, "test");
            pstmt.setInt(2,2000);
            pstmt.executeUpdate();
            } catch (Exception e) {
                e.printStackTrace();
            }finally{
              connlink.relese(conn, pstmt);
            }
        }    
}

########不使用文件配置

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class C3p0Demo2 {
      //下面开始演示使用配置文件的C3p0用法
        static ConnLink connlink=new ConnLink();
        static Connection conn=null;
        static PreparedStatement pstmt=null;
        public static void main(String[] args) throws SQLException {
            //就new了一个对象。在这种情况下c3p0会直接找到c3p0-config.xml文件
            //并且在c3p0-config.xml文件中默认的找到 default-config配置
            try {
                ComboPooledDataSource dataSource=new ComboPooledDataSource();
                
                //2.得到连接对象
                conn=dataSource.getConnection();
                String sql="insert into blank values(null,?,?)";
                pstmt=conn.prepareStatement(sql);
                pstmt.setString(1, "root");
                pstmt.setInt(2,20000);
                pstmt.executeUpdate();
            } catch (Exception e) {
                e.printStackTrace();
            }finally{
                connlink.relese(conn, pstmt);
            }
        }
}

其中配置文件的信息如下(文件名称不可以更改)

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>

  <default-config>
    <property name="driverClass">com.mysql.jdbc.Driver</property>
    <property name="jdbcUrl">jdbc:mysql://localhost/test</property>
    <property name="user">root</property>
    <property name="password">root</property>
    <property name="initialPoolSize">5</property>
    <property name="maxPoolSize">20</property>
  </default-config>
  
  <named-config name="oracle"> 
    <property name="driverClass">com.mysql.jdbc.Driver</property>
    <property name="jdbcUrl">jdbc:mysql:///web_07</property>
    <property name="user">root</property>
    <property name="password">123</property>
  </named-config>
  

</c3p0-config>

注意:代码中的释放调用代码如下

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class ConnLink {
//数据库的连接部分
    public String jdbc_driver="com.mysql.jdbc.Driver";
    public String jdbc_conn="jdbc:mysql://localhost:3306/test";
    public String user="root";
    public String pass="root";
    
    //返回连接函数的部分
    public Connection getConn() throws SQLException, ClassNotFoundException{
        //1.注册驱动
        Class.forName(jdbc_driver);
        //2.获取连接
        Connection connection=DriverManager.getConnection(jdbc_conn,user,pass);
        return connection;
    }
    
    //释放连接资源的部分
    public void relese(Connection conn,PreparedStatement pstmt) throws SQLException{
        
        if(pstmt!=null) pstmt.close();
        if(conn!=null) conn.close();
    }
}

#####数据库变化如下

猜你喜欢

转载自www.cnblogs.com/byczyz/p/11349052.html