口腔医院网站源码宾馆酒店网站建设方案
目录
一、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 | 提前创建连接,减少首次获取连接的等待时间 | initialSize=5 | 
| 最小空闲连接数(Min Idle) | 池中保持的最小空闲连接数 | 0 | 确保池中始终有一定数量的空闲连接,避免频繁创建新连接 | minIdle=3 | 
| 最大空闲连接数(Max Idle) | 池中允许的最大空闲连接数 | 8 | 限制空闲连接数量,避免资源浪费 | maxIdle=10 | 
| 最大连接数(Max Active) | 池中允许的最大连接数 | 8 | 限制并发连接数,防止数据库服务器过载 | maxActive=20 | 
| 最大等待时间(Max Wait) | 获取连接的最大等待时间(单位:毫秒) | -1(无限等待) | 设置获取连接的超时时间,避免线程长时间阻塞 | maxWait=3000 | 
其他常用参数:
| 参数名称 | 含义 | 默认值 | 示例 | 
|---|---|---|---|
| 连接测试周期(Time Between Eviction Runs) | 检测连接是否可用的周期(单位:毫秒) | 60000(60秒) | timeBetweenEvictionRunsMillis=30000 | 
| 最小生存时间(Min Evictable Idle Time) | 连接在池中空闲的最小时间,超过此时间会被检测并回收 | 30000(30秒) | minEvictableIdleTimeMillis=60000 | 
| 连接测试SQL(Validation Query) | 用于检测连接是否可用的SQL语句 | 根据数据库类型自动选择(MySQL为SELECT 1) | validationQuery=SELECT 1 | 
3. 常见连接池
-  
DBCP:Apache开源连接池,简单易用。
 -  
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文件,配置如下:
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///your_database
username=your_username
password=your_password
initialSize=5
maxActive=10
maxWait=2000 
获取连接:
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的优势:功能强大、性能优越、支持监控和加密。
 -  
使用方式:通过代码或配置文件配置连接池,使用工具类简化操作。
 
