zoukankan      html  css  js  c++  java
  • 【JDBC】C3P0连接池的使用

    C3P0连接池的c3p0-config.xml配置文件

    <?xml version="1.0" encoding="UTF-8"?>
    <c3p0-config>
    	<default-config>
    		<property name="driverClass">com.mysql.cj.jdbc.Driver</property>
    		<property name="jdbcUrl">jdbc:mysql:///jdbctest?serverTimezone=Hongkong</property>
    		<property name="user">root</property>
    		<property name="password">1234</property>
    		<property name="initialPoolSize">5</property>
    		<property name="maxPoolSize">20</property>
    	</default-config>
    </c3p0-config>
    

    工具类

    package jdbcUtils;
    
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.Statement;
    
    import com.mchange.v2.c3p0.ComboPooledDataSource;
    
    public class JDBCUtils {
    	private static final ComboPooledDataSource cpds = new ComboPooledDataSource();
    	
    	public static Connection getConection() throws Exception {
    		return cpds.getConnection();
    	}
    	
    	public static void release(Statement stmt, Connection conn) {
    		if(stmt != null) {
    			try {
    				stmt.close();
    			}catch(Exception e) {
    				e.printStackTrace();
    			}
    			stmt = null;
    		}
    		
    		if(conn != null) {
    			try {
    				conn.close();
    			}catch(Exception e) {
    				e.printStackTrace();
    			}
    			conn = null;
    		}		
    	}
    	
    	public static void release(ResultSet rs, Statement stmt, Connection conn) {
    		if(rs != null) {
    			try {
    				rs.close();
    			}catch(Exception e) {
    				e.printStackTrace();
    			}
    			rs = null;
    		}
    		
    		if(stmt != null) {
    			try {
    				stmt.close();
    			}catch(Exception e) {
    				e.printStackTrace();
    			}
    			stmt = null;
    		}
    		
    		if(conn != null) {
    			try {
    				conn.close();
    			}catch(Exception e) {
    				e.printStackTrace();
    			}
    			conn = null;
    		}		
    	}
    }
    

    单元测试

    package demo1;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    
    import org.junit.Test;
    
    import jdbcUtils.JDBCUtils;
    
    public class JDBCDemo4 {
    	
    	@Test
    	public void demo4() {
    		Connection conn = null;
    		PreparedStatement pstmt = null;
    		ResultSet rs = null;
    
    		try {
    			// 获得连接
    			conn = JDBCUtils.getConection();
    			// 编写SQL
    			String sql = "select * from course";
    			// 预编译SQL
    			pstmt = conn.prepareStatement(sql);
    			// 执行SQL
    			rs = pstmt.executeQuery();
    			while (rs.next()) {
    				System.out.println(rs.getInt("id") + " " + rs.getString("name") + " " + rs.getString("category") + " "
    						+ rs.getString("desp") + " " + rs.getTimestamp("createTime"));
    			}
    		} catch (Exception e) {
    			e.printStackTrace();
    		} finally {
    			JDBCUtils.release(rs, pstmt, conn);
    		}
    	}
    }
    
  • 相关阅读:
    Linux基础命令---chfn
    第二十一课:js属性操作的兼容性问题
    jquery源码解析:jQuery工具方法Callbacks详解
    第二十课:js中如何操作元素的属性系统
    第十七课:js数据缓存系统的原理
    jquery源码解析:proxy,access,swap,isArraylike详解
    第十九课:盒子模型
    jquery源码解析:each,makeArray,merge,grep,map详解
    第十八课:js样式操作需要注意的问题
    下拉框插件的详解
  • 原文地址:https://www.cnblogs.com/huowuyan/p/11628092.html
Copyright © 2011-2022 走看看