网站空间空间,杭州程序员培训班,邯郸如何做企业网站,上海做网站联系电话目录
一、Java导包
二、 数据库连接池
1. 概述
2. 常见参数
3. 常见连接池
4. Druid连接池#xff08;重点#xff09;
核心功能#xff1a;
使用方法#xff1a;
导入依赖
配置连接池#xff1a;
代码配置#xff1a;
配置文件#xff1a;
获取连接#…目录
一、Java导包
二、 数据库连接池
1. 概述
2. 常见参数
3. 常见连接池
4. Druid连接池重点
核心功能
使用方法
导入依赖
配置连接池
代码配置
配置文件
获取连接
归还连接
工具类封装
5. 总结 一、Java导包
以将下述jar包导进idea中为例其中我用的idea版本是2017版本的但是都大差不差
1. 首先创建一个普通的Java项目并在src下创一个package包承载jar包
将jar包从文件夹中拖进来 可以看到这里拖进来后其实只是一个空壳本质上这个包里的所有东西并没有得到释放。
2.打开文件中的项目结构 得到这个界面选择库--Java 3.找到项目所在位置后打开jar包 接着一直选择OK直至 随后点击右下角的Apply应用随后点OK关闭界面即可。
4. 得到结果
此时这里的jar包就可以打开了不再是空壳了。 二、 数据库连接池
1. 概述 作用预先创建并管理数据库连接避免频繁创建和销毁连接提升性能。 优势 节省资源连接复用减少创建和销毁的开销。 提升性能直接从池中获取连接减少等待时间。
2. 常见参数
参数名称含义默认值作用示例初始大小Initial Size启动时初始化的连接数0提前创建连接减少首次获取连接的等待时间initialSize5最小空闲连接数Min Idle池中保持的最小空闲连接数0确保池中始终有一定数量的空闲连接避免频繁创建新连接minIdle3最大空闲连接数Max Idle池中允许的最大空闲连接数8限制空闲连接数量避免资源浪费maxIdle10最大连接数Max Active池中允许的最大连接数8限制并发连接数防止数据库服务器过载maxActive20最大等待时间Max Wait获取连接的最大等待时间单位毫秒-1无限等待设置获取连接的超时时间避免线程长时间阻塞maxWait3000
其他常用参数
参数名称含义默认值示例连接测试周期Time Between Eviction Runs检测连接是否可用的周期单位毫秒6000060秒timeBetweenEvictionRunsMillis30000最小生存时间Min Evictable Idle Time连接在池中空闲的最小时间超过此时间会被检测并回收3000030秒minEvictableIdleTimeMillis60000连接测试SQLValidation Query用于检测连接是否可用的SQL语句根据数据库类型自动选择MySQL为SELECT 1validationQuerySELECT 1
3. 常见连接池 DBCPApache开源连接池简单易用。 C3P0开源连接池功能较为丰富。 Druid阿里巴巴开源连接池性能优越功能强大。
4. Druid连接池重点
核心功能 高效连接池提供高性能的数据库连接管理。 SQL监控内置StatFilter插件可监控SQL执行性能。 密码加密支持PasswordCallback避免明文存储密码。 日志记录支持多种日志框架如Log4j记录SQL执行情况。 扩展性通过Filter机制可扩展JDBC功能。
使用方法
导入依赖
添加Druid的jar包。
配置连接池
代码配置
DruidDataSource dataSource new DruidDataSource();
dataSource.setDriverClassName(com.mysql.jdbc.Driver);
dataSource.setUrl(jdbc:mysql:///your_database);
dataSource.setUsername(your_username);
dataSource.setPassword(your_password);
dataSource.setInitialSize(5); // 初始连接数
dataSource.setMaxActive(10); // 最大连接数
dataSource.setMaxWait(2000); // 最大等待时间毫秒
配置文件
创建druid.properties文件配置如下
driverClassNamecom.mysql.jdbc.Driver
urljdbc:mysql:///your_database
usernameyour_username
passwordyour_password
initialSize5
maxActive10
maxWait2000
获取连接
Connection conn dataSource.getConnection();
归还连接
conn.close(); // 实际上是归还到连接池
工具类封装
创建工具类JdbcUtils简化连接获取和资源关闭
package cn.tx.utils;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.sql.*;
import java.util.Properties;public class JdbcUtils {private static DataSource dataSource;static {Properties props new Properties();try (InputStream in JdbcUtils.class.getResourceAsStream(/druid.properties)) {props.load(in);dataSource DruidDataSourceFactory.createDataSource(props);} catch (Exception e) {e.printStackTrace();}}public static Connection getConnection() throws SQLException {return dataSource.getConnection();}public static void close(Connection conn, Statement stmt, ResultSet rs) {try {if (rs ! null) rs.close();if (stmt ! null) stmt.close();if (conn ! null) conn.close(); // 归还连接} catch (SQLException e) {e.printStackTrace();}}
}
5. 总结 连接池的作用提升性能、节省资源。 Druid的优势功能强大、性能优越、支持监控和加密。 使用方式通过代码或配置文件配置连接池使用工具类简化操作。