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