博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JNDI数据库连接池
阅读量:4179 次
发布时间:2019-05-26

本文共 1495 字,大约阅读时间需要 4 分钟。

JNDI的全称是java命名与目录接口(Java Naming and Directory Interface),是一个应用程序设计的API,为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口。我们可以把JNDI简单地理解为是一种将对象和名字绑定的技术,即指定一个资源名称,将该名称与某一资源或服务相关联,当需要访问其他组件和资源时,就需要使用JNDI服务进行定位,应用程序可以通过名字获取对应的对象或服务。

JNDI方式 - 配置Tomcat6.0 连接池

数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。我们可以通过设定连接池最大连接数来防止系统无尽的与数据库连接。更为重要的是我们可以通过连接池的管理机制监视数据库的连接的数量,使用情况,为系统开发,测试及性能调整提供依据。

步骤

1. Install Your JDBC Driver 安装jdbc驱动程序到tomcat的lib
2. 在web.xml中加入数据源的名字的配置

res-ref-name:指定所引用资源的JNDI名字,与
元素中的name属性对应。res-type:指定所引用资源的类名字,与
元素中的type属性对应。res-auth:指定管理所引用资源的Manager,与
元素中的auth属性对应。
jdbc/progrart
javax.sql.DataSource
Container
  1. 修改dBhelper中获取联接的代码,将联接的获取转给tomcat.
//获取数据库联接    public Connection getCon() throws SQLException{        //MyProperties mp = MyProperties.getInstance();        //Connection con = DriverManager.getConnection(mp.getProperty("url"),                                 //mp.getProperty("username"),  mp.getProperty("password") );        Connection con=null;        try {            Context initCtx=new InitialContext();            Context envCtx=(Context) initCtx.lookup("java:comp/env");            DataSource ds=(DataSource)envCtx.lookup("jdbc/progrart");            con=ds.getConnection();        } catch (NamingException e) {            e.printStackTrace();        }        return con;    }
  1. 在tomcat的conf/context.xml中加入资源的配置,联接数据库的相关配置( 用户名,密码,url, 驱动名)

转载地址:http://rfhai.baihongyu.com/

你可能感兴趣的文章
VS2019 LINK Error 无法找到 mscoree.lib
查看>>
Verilog_MyHDL的使用
查看>>
VisualStudio2019的怪问题,在_Container_base12::_Orphan_all引发了异常: 读取访问权限冲突
查看>>
相机技术--摄像机720p、1080p、2mp、3mp、5mp;VGA, QHD, FHD, 2K,4K对应的分辨率分别是什么
查看>>
Android四大组件之Service示例
查看>>
Android四大组件Service之前台进程(201807最新源码)
查看>>
实战Android:用AccessibilityService捕获volume按键
查看>>
实战Android:通过BroadcastReceiver监听Home,电源Power,和音量变化Volume键
查看>>
Android Studio错误:找不资源文件包 -- Cannot resolve symbol "R"
查看>>
实战Android:图片处理之ColorMatrix和Matrix实例
查看>>
Android Bitmap入门:getPixels的正确理解
查看>>
VS2017的怪问题--错误: 未能完成操作。未指定的错误
查看>>
Anaconda闪退的问题AttributeError: 'str' object has no attribute 'get'
查看>>
matplotlib中plot.show()不显示图片的问题:如何把backend=Agg配置为TkAgg
查看>>
constexpr关键字
查看>>
在Ubuntu Server上编译FFmpeg
查看>>
git 切换到远程分支
查看>>
AAC的ADTS头文件信息介绍
查看>>
CMAKE手册
查看>>
视频压缩编码和音频压缩编码的基本原理
查看>>