一、什么是数据库连接池
数据库连接池负责分配、管理和释放数据库连接,避免了频繁创建和销毁连接带来的性能开销。阿里巴巴开源的 Druid 是目前
Java 生态中使用最广泛的连接池组件。
二、Druid 的核心优势
1. 性能优异:在各类连接池性能对比中名列前茅
2. 监控功能:内置 SQL 监控、Web 监控页面
3. 扩展性强:支持 Filter 插件机制,可自定义拦截器
4. 安全性:提供 SQL 防注入功能
三、在 SSM 项目中的配置
在 spring-context.xml 中配置数据源:
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/stusystem" />
<property name="username" value="root" />
<property name="password" value="123456" />
<!-- 连接池大小 -->
<property name="initialSize" value="1" />
<property name="minIdle" value="3" />
<property name="maxActive" value="20" />
<!-- 等待超时 -->
<property name="maxWait" value="60000" />
</bean>
四、配置 Druid 监控页面
在 web.xml 中添加 Druid 的 StatViewServlet:
<servlet>
<servlet-name>DruidStatView</servlet-name>
<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DruidStatView</servlet-name>
<url-pattern>/druid/*</url-pattern>
</servlet-mapping>
访问 http://localhost:8080/项目名/druid/ 即可查看监控页面。
五、常见问题与解决
1. 新版 MySQL 驱动类名变化:5.x 使用 com.mysql.jdbc.Driver,8.x 使用 com.mysql.cj.jdbc.Driver
2. 连接超时:检查 MySQL 服务是否启动,防火墙是否放行 3306 端口
3. 密码错误:确认 demo.properties 中的密码与 MySQL 一致
Druid 作为国产开源组件的优秀代表,是每个 Java 后端开发者都应该掌握的技能。