数据库连接池技术
普通的JDBC技术使用DriverManager来获取连接,且每次数据库连接使用完后都必须断开,不然如果程序出现异常而没有关闭连接就会使得内存泄漏,最终会导致重启数据库。这种方法不能控制被创建的连接对象数,如果连接数过多也可能导致内存泄漏,服务器崩溃。
针对这些存在的漏洞,数据库连接池技术(Connection Pool)被提出。此基本思想是:为数据库连接建立一个”缓冲池“,预先在”缓冲池“中放入一定数量的连接,当需要简历数据库连接时,直接从”缓冲池“中取出一个连接,使用完后放回即可。这个”缓冲池“建立分配、管理、释放连接,允许一个程序重复的使用一个现有的数据库连接,当程序申请的连接数大于该数据库连接池中拥有的连接数,未申请成功的连接就会进入队列等待。
目前已经有很多种开源的数据库连接池。数据库连接池使用javax.sql.DataSource来表示,DataSource只是一个接口,该接口通常由服务器(Weblogic,WebSphere,Tomcat)提供实现,也有一些开源组织提供:DBCP、C3P0、Proxool、BoneCP、Druid……
DataSource成为数据源,它包含连接池和连接池管理两个部分,习惯上也把DataSource称为连接池。
Druid数据源获取连接关闭连接方法类:
public class JDBCUtilsByDruid {
    static DataSource dataSource;
    static {
        //创建一个指定参数的数据库连接池
        try {
            Properties properties=new Properties();
            properties.load(new FileInputStream("src\\druid.properties"));
            dataSource = DruidDataSourceFactory.createDataSource(properties);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static Connection getConnection() throws SQLException {
        //从数据库连接池中获取可用的连接对象
        return dataSource.getConnection();
    }
    public static void close(ResultSet set, Statement statement, Connection connection) {
        try{
            if(set!=null){
                set.close();
            }
            if(statement!=null){
                statement.close();
            }
            if(connection!=null){
                connection.close();
            }
        }catch (SQLException e){
            throw new RuntimeException(e);
        }
    }
}
使用Druid数据源步骤:
加载druid.properties配置文件:

获取连接:
Connection connection=JDBCUtilsByDruid.getConnection();
执行操作
关闭连接
connection.close();
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号