JDBC-C3P0总结

    xiaoxiao2021-10-31  74

    1.新建项目后,导入jar包,c3p0,mysql,pool,等包。 如图 2.配置文件, 分为手动配置,自动配置文件 a)手动配置文件 //

    public static void demo1(){ // 连接对象 Connection coon = null; // sql 编译对象 PreparedStatement pstm = null; // sql  执行对象 ResultSet rs = null; // c3p0 数据库连接池对象 ComboPooledDataSource dataSource = new ComboPooledDataSource(); try { // 获得驱动 dataSource.setDriverClass("com.mysql.jdbc.Driver"); dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/db"); dataSource.setUser("root"); dataSource.setPassword("root"); // 获得 数据连接对象 coon = dataSource.getConnection(); String sql ="select*from exam"; // 编译执行 sql pstm =coon.prepareStatement(sql); rs = pstm.executeQuery(); while(rs.next()){ System.out.println(rs.getInt("id")+" "+ rs.getString("ename")); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); // 关闭资源 }finally{ JDBCUtils.release(coon, rs, pstm); } } b> 自动配置文件 public static void demo2(){ Connection coon = null; PreparedStatement pstm = null; ResultSet rs = null; ComboPooledDataSource dataSource = new ComboPooledDataSource(); try { coon = dataSource.getConnection(); String sql ="select * from exam"; pstm = coon.prepareStatement(sql); rs = pstm.executeQuery(); while(rs.next()){ System.out.println(rs.getInt("id")+" "+rs.getString("ename")); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ JDBCUtils.release(coon, rs, pstm); } } // 创建ComboPooledDataSource 对象 即可获得配置文件, // 手动,还是自动, 都可获得配置文件 ComboPooledDataSource dataSource = new ComboPooledDataSource(); 配置文件: <?xml version="1.0" encoding="UTF-8"?> <c3p0-config> <default-config> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql:///db</property> <property name="user">root</property> <property name="password">root</property> <property name="initialPoolSize">5</property> <property name="maxPoolSize">20</property> </default-config> </c3p0-config> mysql 数据库,库名db,表名,exam 提高代码的复用性,可将部分代码封装到一个工具类。 工具类代码(JDBCUtils2.java): import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.sql.DataSource; import com.mchange.v2.c3p0.ComboPooledDataSource; public class JDBCUtils2 { private static final ComboPooledDataSource DATA_SOURCE = new ComboPooledDataSource(); public static Connection getConnection(){ Connection coon = null; try { coon = DATA_SOURCE.getConnection(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return coon; } public static DataSource getDataSource(){ return DATA_SOURCE; } public static void release(ResultSet rs,Statement stmt,Connection conn){ if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } // 垃圾回收尽快回收对象. rs = null; } if (stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } // 垃圾回收尽快回收对象. stmt = null; } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } // 垃圾回收尽快回收对象. conn = null; } } } 实现类(JDBCDemo3): import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import com.mycode.jdbc.JDBCUtils2; public class JDBCDemo3 { public static void main(String[] args){ demo1(); } public static void demo1(){ Connection coon = null; PreparedStatement pstm = null; ResultSet rs = null; coon = JDBCUtils2.getConnection(); String sql = "select*from exam"; try { pstm = coon.prepareStatement(sql); rs = pstm.executeQuery(); while(rs.next()){ System.out.println(rs.getInt("id")+" "+ rs.getString("ename")); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ JDBCUtils2.release(rs, pstm, coon); } } }
    转载请注明原文地址: https://ju.6miu.com/read-677909.html

    最新回复(0)