• 连接池之DruidUtil


    package dbcp;
    
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import java.util.Properties;
    
    import javax.sql.DataSource;
    
    import com.alibaba.druid.pool.DruidDataSourceFactory;
    
    
    public class DruidUtil {
    
    	private static DataSource ds = null;
    	static {
    		try {
    			Properties p = new Properties();
    			p.load(Thread.currentThread().getContextClassLoader()
    					.getResourceAsStream("druid.properties"));
    			// 创建DataSource对象
    			ds = DruidDataSourceFactory.createDataSource(p);
    			
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    	
    	public static Connection getConn() {
    		try {
    			return ds.getConnection();
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		return null;
    	}
    	
    	public static void close(Connection conn, Statement st, ResultSet rs) {
    		try {
    			if(rs != null) {
    				rs.close();
    			}
    		} catch (Exception e) {
    		} finally {
    			try {
    				if(st != null) {
    					st.close();
    				}
    			} catch (Exception e2) {
    			} finally {
    				try {
    					if(conn != null) {
    						conn.close();
    					}
    				} catch (Exception e3) {
    				}
    			}
    		}
    	}
    }
    

      

    测试:

    package dbcp;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    
    import javax.sql.DataSource;
    
    import org.apache.commons.dbcp.BasicDataSource;
    import org.junit.Test;
    
    // 使用DBCP连接池
    public class DBCPTest {
    	
    	public DataSource getDataSource() {
    		// 创建连接对象
    		BasicDataSource ds = new BasicDataSource();
    		// 设置连接数据库的四要素
    		ds.setDriverClassName("com.mysql.cj.jdbc.Driver");
    		ds.setUrl("jdbc:mysql://localhost:3306/jdbcdemo?useUnicode=true&characterEncoding=utf-8&useSSL=false&&serverTimezone=GMT");
    		ds.setUsername("root");
    		ds.setPassword("admin");
    		ds.setMaxActive(5);		// 最大连接数
    		return ds;
    	}
    
    	@Test
    	public void test1() throws Exception {
    		//DataSource ds = this.getDataSource();
    		//Connection conn = ds.getConnection();
    		Connection conn = DruidUtil.getConn();
    		PreparedStatement ps = conn.prepareStatement("SELECT * FROM t_student");
    		ResultSet rs = ps.executeQuery();
    		while(rs.next()) {
    			System.out.println(rs.getLong("id"));
    		}
    	}
    }
    

      

    配置文件

    driverClassName=com.mysql.cj.jdbc.Driver
    url=jdbc:mysql://localhost:3306/jdbcdemo?useUnicode=true&characterEncoding=utf-8&useSSL=false&&serverTimezone=GMT
    username=root
    password=admin
    maxActive=10
    
    validationQuery:SELECT 1
    testWhileIdle:true
    testOnBorrow:false
    testOnReturn:false
    

      

  • 相关阅读:
    MySQL使用alter修改表的结构
    MySQL基本库表管理
    MySQL的rpm安装教程
    MySQL基础理论
    Linux shell awk数组使用
    Linux shell awk逻辑控制语句
    Linux shell awk模式使用
    MySQL 查看执行计划
    MySQL 自定义函数
    MySQL 内置函数
  • 原文地址:https://www.cnblogs.com/mjn1/p/11197773.html
Copyright © 2020-2023  润新知