数据库连接池JNDI

数据库JNDI连接池

数据源(DataSource)javax.sql.DataSource接口负责建立与数据库的连接由Tomcat提供,将连接保存在连接池中

因为这个数据库连接池是配置在Tomcat中的,一旦换了Tomcat,就不能用,所以很少用这个JNDI

配置 Tomcat 中的数据源并使用 JNDI 获取数据库连接的过程可以分为几个步骤 :

1.apache-tomcat-9.0.30\conf\content.xml中的<Context>设置

注意:

  1. username修改成自己的数据库用户名
  2. password修改成自己的数据库密码
  3. url 把这个url的端口和数据库名称修改成自己的

name 指定Resource的JNDI名称

Container 指定管理Resource的Manager

type 指定Resource所属的Java类

maxActive 指定连接池中处于活动状态的数据库连接的最大数目

maxIdle 指定连接池中处于空闲状态的数据库连接的最大数目

maxWait 指定连接池中的连接处于空闲的最长时间

复制代码
	<Resource name="jdbc/smbms" 
              auth="Container"  type="javax.sql.DataSource"  maxActive="100" 
              maxIdle="30" maxWait="10000" username="root"  password="root" 
              driverClassName="com.mysql.jdbc.Driver" 
              url="jdbc:mysql://127.0.0.1:3306/javaweb_test"/>
2. 配置数据库驱动

确保 JDBC 驱动已添加到 Tomcat 的 lib 目录中,例如 MySQL 驱动 mysql-connector-java-X.X.X.jar,

3.获取连接对象

=把这个放到BaseDao中,这是获取conn连接的

复制代码
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/javaweb_test");
Connection conn = ds.getConnection();
out.println(conn);
相关推荐
SelectDB19 小时前
阶跃星辰基于 SelectDB 构建 PB 级 Agent 可观测平台
大数据·数据库·aigc
这个DBA有点耶20 小时前
GROUP BY优化全解:如何写出既不丢数据又飞快的分组查询
数据库·mysql·架构
掉头发的王富贵1 天前
【StarRocks】极限十分钟入门StarRocks
数据库·sql·mysql
Nturmoils1 天前
WHERE 条件别凭习惯写,常用查询先跑一遍
数据库
SamDeepThinking1 天前
一条UPDATE语句在MySQL 8.0中到底加了几把锁?
后端·mysql·程序员
Databend2 天前
在 AWS 中国峰会逛了一天,我在 Databend 展台看到了 Agent 数据基础设施的新思路
数据库·人工智能·agent
李白客3 天前
KES新版MySQL兼容能力再升级意味着什么?
mysql·国产数据库
ClouGence3 天前
Oracle 数据同步为什么会出现数据不一致?长事务是常被忽略的原因
数据库·后端·oracle
飞将3 天前
从零实现数据库(2)——HashIndex + IndexManager
数据库
Nturmoils4 天前
订单列表慢查询,先看 WHERE、ORDER BY 和 LIMIT
数据库