数据库连接池

数据库连接池在高并发场景下能有效降低服务器压力,提高程序效率。它在内存中预创建数据库连接对象,通过JNDI在Java中获取。配置Tomcat的context.xml文件可实现JDBC Tomcat Pool,当不再使用连接时,会将其归还给连接池。JNDI与JDBC的主要区别在于修改数据库配置时,JNDI无需重新部署程序。
摘要由CSDN通过智能技术生成

使用数据库连接池的目的

在高频率访问数据库时,使用数据库连接池可以降低服务器系统压力,提升程序运行效率.


数据库连接池

  1. 在内存中开辟一块空间,存放多个数据库连接对象.
  2. JDBC Tomcat Pool,直接由tomcat 产生数据库连接池.

状态

  • active 状态:当前连接对象被应用程序使用中
  • Idle 空闲状态 : 等待应用程序使用

注意:
小型项目不适用数据库连接池.


实现JDBC tomcat Pool 的步骤.

1. 在web 项目的META-INF 中存放context.xml , 在context.xml 编写数据库连接池相关属性;

<?xml version="1.0" encoding="UTF-8"?>

<!-- 
maxActive="50"  
maxIdle="20" 
name="test" 数据库连接池的名字
auth="Container"  由tomcat管理数据库连接池
maxWait="10000" 取得Idle状态的对象去转成active状态,等待取得Idle对象的时间,取不到就不取了然后报异常
type="javax.sql.DataSource" 在java中通过name属性取得连接池对象时,他在java中的类型
-->
<Context>
	<Resource 
		driverClassName="com.mysql.jdbc.Driver"
		url="jdbc:mysql://localhost:3306/ssm" 
		username="root"
		password="123456" 
		maxActive="50" 
		maxIdle="20" 
		name="test"
		auth="Container" 
		maxWait="10000" 
		type="javax.sql.DataSource" />
</Context>

2. tomcat 一启动就会在系统内存中生成数据库连接池;

3. 可以在java 中使用 JNDI(Java Naming and Directory Interface,Java命名和目录接口) 获取数据库连接池中对象

背景知识:
context.xml: 上下文资源文件
Context : 上下文接口,专门获取context.xml文件对象的一个接口
DataSource :数据源,相当于数据库连接池的类型

Context c = new InitialContext();
DataSource s =(DataSource) c.lookup("java:comp/env/test");// test为数据库连接池名字
Connection conn = s.getConnection();

4. 当关闭连接对象时,把连接对象归还给数据库连接池,把状态改变成Idle


JNDI与JDBC的区别

jdbc:java去找数据库驱动
jndi:通过服务器(如Tomcat)的配置文件context来找数据库驱动

使用起来的区别是:

使用jdbc的话:如果你要修改数据库的相关信息、配置,你必须修改源代码,重新部署程序;
使用jndi的话:只需在服务器中修改相应的xml文件,对代码的影响降到最低

参考:JNDI与Jdbc的区别

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值