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();
}
}
#####数据库变化如下
