JNDI

23 篇文章 0 订阅
12 篇文章 1 订阅

JNDI

【前言】:当创建的连接不够用时,我们该如何处理呢?所以引入了数据库连接池。连接池是由容器提供的,用来管理池中连接对象。其实数据库连接池有点像之前学的线程池,先将一些连接放入连接池中,用的时候取出来,不用的时候放回去,没有空闲的连接时,只能等待其他释放。

JNDI—(Java Naming and Directory Interface)Java命名和目录接口

JNDI 提供了一种统一的方式,可以用在网络上查找和访问服务。通过指定一个资源名称,该名称对应于数据库或命名服务中的一个记录,同时返回数据库连接建立所必须的信息

在这里插入图片描述
在这里插入图片描述
具体步骤如下:

一、配置好Tomcat

1、配置/tomcat/conf/context.xml文件,用于设置数据库的连接池信息

<!-- 注意这些只是字段名详解,不用加
  JNDI数据源配置
  J2EE服务器上保存着一个数据库的多个连接(连接池中),
  数据源被绑定在了JNDI树上,
  每一个DataSource都有一个name,
  客户端通过name找到在JNDI树上绑定的DataSource,
  再由DataSource找到一个连接
 name:表示以后要查找的名称。通过此名称可以找到DataSource,此名称任意更换,但是程序中最终要查找的就是此名称,  
 auth:由容器进行授权及管理,指的用户名和密码是否可以在容器上生效,可以使用Container  
 type:此名称所代表的类型,现在为javax.sql.DataSource(不用变)  
 maxActive:表示一个数据库在此服务器上所能打开的最大连接数  
 maxIdle:表示一个数据库在此服务器上维持的最小连接数  
 maxWait:最大等待时间。10000毫秒  
 username:数据库连接的用户名  
 password:数据库连接的密码  
 driverClassName:数据库连接的驱动程序  
 url:数据库连接的地址  
 -->

添加如下代码
在这里插入图片描述
2、idea配置Tomcat
具体操作可以看我之前的博客

【注意:别忘记导入Tomcat和驱动Jar包

dao层

package dao;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;

/**
 * @Author shall潇
 * @Date 2021/3/8
 * @Description     使用数据源
 */
public class ResultDao {
    public static Connection conn;
    public void getConn(){
        try {
            Context ctx = new InitialContext();
            Context context = (Context) ctx.lookup("java:comp/env");
            DataSource ds = (DataSource) context.lookup("res");		//这个要和配置文件中起的名字一样
            conn = ds.getConnection();
            System.out.println(conn);
        } catch (NamingException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

index.jsp

<%@ page import="dao.ResultDao" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>JNDI</title>
  </head>
  <body>
  <%
//JNDI
      ResultDao rd = new ResultDao();
      rd.getConn();
      out.print(rd.conn);
  %>
  </body>
</html>

运行结果
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值