每一次 连接-释放 都要占用资源

Spring JDBC:JDBC Template(简化JDBC编程)

数据库连接池:容器(集合),存放数据连接的容器。

当系统初始化好后,容器被创建,容器中会申请一些连接对象。当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。

好处:节约资源,高效


标准接口:DataSource

获取连接:getConnection(),由数据库厂商实现

归还连接:如果连接对象Connection是从连接池中获取的,Connection.close()表示归还连接


C3P0:数据库连接池技术

Druid:数据库连接池实现技术,阿里巴巴提供,高效


C3P0数据库连接池:

导入jar包:

定义配置文件:c3p0.properties或者c3p0-config.xml

路径:直接放在src目录下

代码:

 


Druid数据库连接池:

导包: 

添加配置文件xml:需要手动加载

 连接数据库


Druid工具类:

public class JDBCUtils1 {
    private static DataSource ds;
    static {
        Properties properties=new Properties();
        try {
            properties.load(new FileReader("C:\\Users\\暮色年华\\IdeaProjects\\untitled5\\src\\durid.properties"));
            ds= DruidDataSourceFactory.createDataSource(properties);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static Connection getConnection() throws SQLException {
        return ds.getConnection();
    }
    public static void close(Statement st, Connection ct){
        if(st!=null){
            try {
                st.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(ct!=null){
            try {
                ct.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    public static void close(ResultSet rs, Statement st, Connection ct){
        if(rs!=null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        close(st,ct);
    }
    public static DataSource getDataSource(){
        return ds;
    }

}

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐