Tomcat数据源的原理,配置及使用(JNDI)
Tomcat数据源的原理,配置及使用
知识点:
1.数据源的作用及操作原理;
2.Tomcat中数据源的配置;
3.数据源的查找及使用
传统JDBC使用过程存在以下四个步骤:
1.加载驱动程序
2.进行数据库连接
3.数据库操作
4.数据库关闭
对于不同的用户只有操作不同,但是1,2,3三个步骤是一个重复的操作
如果开始种直接使用JDBC操作的化,那么会产生一种性能的问题
那么假设数据库不关闭,一户如果有新的用户使用的时候直接取一个已经有的连接就可以了
这就是数据库连接池,数据库连接池里存放的是数据库的连接
1.JNDI的配置
01配置方法1:
在web容器中,数据库的连接池都是通过数据源(javax.sql.DataSource)访问的,即:可以通过javax.sql.DataSource类取得一个Connection对象,但是如果要向得到一个DataSource对象需要使用JNDI进行查找,如下图所示:

JNDI属于命名及目录查找借口,主要功能是进行查找的,查找对象.
数据库的连接池需要在Tomcat上完成配置的,要修改Tomcat的conf目录下的Context.xml文件才可以起作用
<Context>
<Resource
name="jdbc/myschool"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="root"
password="admin"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/myschool">
</Resource>
</Context>
此配置有几个参数:
01.name:表示数据源的名称,也是要查找的名称
02.auth:表示容器负责资源的连接
03.type:表示对象,数据源上每一个绑定的都是DataSource
04.Maxactive:最大连接数
05.maxIdle:处于空闲时间的最大连接数
对于连接的授权有两种:Container,Application(应用程序必须程序化的登录到资源管理器,基本不用)
Tomcat6.0以后版本,如果要让一个数据源起作用,还必须在项目下的web.xml里进行如下配置:
<web-app>
<resource-ref>
<description>myschool DataSource</description> myschool是数据库名字
<res-ref-name>jdbc/myschool</res-ref-name> jdbc/myschool和Context.xml中的name值一致
<res-type>javax.sql.DataSource</res-type> javax.sql.DataSource和Context.xml中的type值一致
<res-auth>Container</res-auth> Container和Context.xml中的auth值一致
</resource-ref>
</web-app>
2.配置方法2
将Tomcat的conf目录下的Context.xml复制到具体的项目下的META-INF文件夹中,然后添加
<Context>
<Resource
name="jdbc/myschool"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="root"
password="admin"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/myschool">
</Resource>
</Context>
就OK了
JNDI的使用
步骤:
01.初始化上下文Context ctx=new InitialContext();
02.获取数据源DataSource ds=(DataSource )ctx.lookup(“java:comp/evn/jdbc/mldn”)
03.获取连接Connection conn=ds.getConnection();
04.关闭连接(使连接恢复空闲状态):conn.close
常见异常:

Tomcat数据源的原理,配置及使用(JNDI)的更多相关文章
- Tomcat 数据源的原理、配置、使用
1.数据源的作用及操作原理 在程序代码中使用数据源是可以提升操作性能的,这种性能的提升依靠于运行的原理. 传统JDBC操作步骤 1.加载数据库驱动程序,数据库驱动程序通过CLASSPATH配置: 2. ...
- JNDI学习总结(二)——Tomcat下使用C3P0配置JNDI数据源
一.C3P0下载 C3P0下载地址:http://sourceforge.net/projects/c3p0/files/?source=navbar
- Tomcat下使用C3P0配置JNDI数据源(在项目的META-INF目录下创建context.xml的文件)
一.C3P0下载 C3P0下载地址:http://sourceforge.net/projects/c3p0/files/?source=navbar 下载完成之后得到一个压缩包
- JNDI学习总结——Tomcat下使用C3P0配置JNDI数据源
一.C3P0下载 C3P0下载地址:http://sourceforge.net/projects/c3p0/files/?source=navbar
- Tomcat 6 部署工程总结,使用JNDI数据源配置
工程需要用JNDI数据源方式部署到tomcat,参考网上文章后,经过配置测试,摸索出来了. 环境说明: 数据库:Oracle9i Web服务器:tomcat-6.0.33 tomcat启动方式 ...
- JNDI学习总结(3)——Tomcat下使用C3P0配置JNDI数据源
一.C3P0下载 C3P0下载地址:http://sourceforge.net/projects/c3p0/files/?source=navbar 下载完成之后得到一个压缩包. 二.使用C3P0配 ...
- TOMCAT数据源连接配置
/* *本文档简单介绍系统使用TOMCAT6.0数据源方式连接数据库的配置方法: *1,系统环境: gdczsam4.0 + Tomcat6.0 + JDK1.5 + SQL Server2008 ...
- Tomcat连接池配置与实现/JNDI
方法一: 在Tomcat的conf/context.xml中配置在Tomcat\apache-tomcat-6.0.33\conf目录下的context.xml文件中配置默认值如下: <?xml ...
- Tomcat数据源配置方法总结
最近接触的数据表管理项目,涉及到了数据源配置,所以整理了一下配置方法: JNDI数据源统一都是在Tomcat下server.xml中配置的,根据应用范围的差别又分为一下几种方式: 第一种:配置单个应用 ...
随机推荐
- pandas 级联 concat append
连接的一个有用的快捷方式是在Series和DataFrame实例的append方法.这些方法实际上早于concat()方法. 它们沿axis=0连接 #encoding:utf8 import pan ...
- python threading模块使用 以及python多线程操作的实践(使用Queue队列模块)
今天花了近乎一天的时间研究python关于多线程的问题,查看了大量源码 自己也实践了一个生产消费者模型,所以把一天的收获总结一下. 由于GIL(Global Interpreter Lock)锁的关系 ...
- Lodop导出excel及提示成功【回调和直接返回值】
高版本的火狐和谷歌不再支持np插件之后,Lodop公司推出了C-Lodop,解决了这些浏览器不能用Lodop插件方式打印的问题,相比较Lodop插件,C-Lodop由于是以服务的形式出现,返回值不能直 ...
- Nginx ACCESS阶段 如何限制IP访问
192.168.1.0/24(最大32位的子网掩码) 每个ip是8位 那么 24/8 = 3 也就是前三个二进制 是 11111111 11111111 11111111 是指子网掩码的位数.写的是多 ...
- Scout YYF I POJ - 3744(概率dp + 矩阵快速幂)
题意: 一条路上有n个地雷,你从1开始走,单位时间内有p的概率走一步,1-p的概率走两步,问安全通过这条路的概率 解析: 很容易想到 dp[i] = p * dp[i-1] + (1 - p) * d ...
- BZOJ 4555: [Tjoi2016&Heoi2016]求和 (NTT + 第二类斯特林数)
题意 给你一个数 \(n\) 求这样一个函数的值 : \[\displaystyle f(n)=\sum_{i=0}^{n}\sum_{j=0}^{i} \begin{Bmatrix} i \\ j ...
- 自学Zabbix3.11-宏Macros
点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 自学Zabbix3.11-宏Macros zabbix宏变量让zabbix变得更灵活,它根据一系列 ...
- 【BZOJ4813】[CQOI2017]小Q的棋盘(贪心)
[BZOJ4813][CQOI2017]小Q的棋盘(贪心) 题面 BZOJ 洛谷 题解 果然是老年选手了,这种题都不会做了.... 先想想一个点如果被访问过只有两种情况,第一种是进入了这个点所在的子树 ...
- EXTRACT FILES AND IMAGES FROM A SHAREPOINT CONTENT DATABASE
If you ever had the problem where you need to extract files from a SharePoint Content Database or no ...
- MD5 SHA1 CRC32
md5: import hashlib md5 = hashlib.md5() md5.update(bytes('http://www.baidu.com',encoding="utf-8 ...