今天做了一个评论的小功能,要求用JNDI连接池连接Oracle数据库,以前只是测试了是否连接的上,现在没想到一个JNDI连接池连接Oracle数据库,纠结了好久,原来都是Oracle数据库的问题,这是过失。下面介绍一下JNDI连接池连接Oracle数据库。

JNDI介绍
什么是JNDI?
JNDI(Java Naming and Directory Interface,Java命名和目录接口)
是一组在Java应用中访问命名和目录服务的API
通过名称将资源与服务进行关联
 
什么是连接池技术?
 
连接池
连接池是在内存中预设好一定数量的连接对象,以备用户在进行数据库操作时直接使用
性能
数据库连接的建立、断开均由管理池统一管理
连接池技术与传统数据库连接的比较
数据库操作性能得到提升
通过连接池管理数据库的连接与释放、提高了系统资源的使用效率
 
为什么使用连接池?
Ø传统数据库连接方式的不足
Ø每一次请求时均需要与数据库进行连接,资源占用较多
Ø当并发访问数量较大时,网站速度收到极大影响
Ø在访问结束后必须要关闭连接释放资源
Ø系统的安全性和稳定性相对较差
 
企业级开发需要稳健和高效的数据访问层
完成对数据库的CRUD操作
能够处理数据库发生的各种错误
可以灵活的修改配置
提供方便使用的工具
高性能
 
访问数据源
第一步:Tomcat的conf/context.xml中的配置
 加入数据库驱动文件
把数据库驱动的.jar文件,加入到Tomcat的common\lib中
应用程序的web.xml文件的配置
在web.xml中配置<resource-ref>
<?xml version='1.0' encoding='utf-8'?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- The contents of this file will be loaded for each web application -->
<Context> <!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource> <!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
--> <!-- Uncomment this to enable Comet connection tacking (provides events
on session expiration as well as webapp lifecycle) -->
<!--
<Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
--> --红色字体是需要根据数据库名配置
<Resource name="jdbc/liuyan" auth="Container"
type="javax.sql.DataSource" maxActive="100"
maxIdle="30" maxWait="10000" username="epet" password="123456"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:orcl"
/>
</Context>
import java.sql.Connection;
import java.sql.SQLException; import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource; /**
* 文件名:JNDI.java
* 描 述:这是一个数据库连接类
* 作 者:WLX
* 所属项目:MyNews
* JDK版本:JDK1.7
* 创建时间:2015年5月23日 下午2:54:24
*
*/
public class JNDI { public Connection getconn() { Connection conn = null;
try { Context ctx;
ctx = new InitialContext();
//java:comp/env/为前缀
DataSource source = (DataSource)ctx.lookup("java:comp/env/jdbc/liuyan"); Connection connection = source.getConnection();
if(connection != null){
conn = connection;
} } catch (NamingException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
} }
 
 

JNDI连接池连接Oracle数据库的更多相关文章

  1. python - DBUtils 连接池减少oracle数据库的连接数

    问题: 接到需求,告知项目的oracle连接次数过多,对系统造成太过大的负担,要求减少oracle数据库的连接次数 分析: 仔细分析代码以后,发现产生问题的原因,在于之前要求提升oracle监控的监控 ...

  2. Mybatis 搭配 阿里druid连接池 连接 oracle 或 mysql

    DRUID介绍 DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0.DBCP.PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针 ...

  3. Java java jdbc thin远程连接并操作Oracle数据库

    JAVA jdbc thin远程连接并操作Oracle数据库 by:授客 QQ:1033553122 测试环境 数据库:linux 下Oracle_11g_R2 编码工具:Eclipse 编码平台:W ...

  4. python使用dbutils的PooledDB连接池,操作数据库

    1.使用dbutils的PooledDB连接池,操作数据库. 这样就不需要每次执行sql后都关闭数据库连接,频繁的创建连接,消耗时间 2.如果是使用一个连接一直不关闭,多线程下,插入超长字符串到数据库 ...

  5. jdbc连接rac的oracle数据库

    jdbc连接rac的oracle数据库需要配置所有racIP,如下: DB1 =(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(H ...

  6. node 连接MySQL及其分装, 连接池连接

    const mysql = require('mysql') const config = require('./../../config/config.default') var connectio ...

  7. python通过连接池连接redis,操作redis队列

    在每次使用redis都进行连接的话会拉低redis的效率,都知道redis是基于内存的数据库,效率贼高,所以每次进行连接比真正使用消耗的资源和时间还多.所以为了节省资源,减少多次连接损耗,连接池的作用 ...

  8. spring boot配置druid连接池连接mysql

    Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...

  9. springboot使用druid连接池连接Oracle数据库的基本配置

    #阿里连接池配置 #spring.datasource.druid.driver-class-name=oracle.jdbc.driver.OracleDriver #可配可不配,阿里的数据库连接池 ...

随机推荐

  1. 【模板】Tarjan缩点

    洛谷3387 #include<cstdio> #include<algorithm> #include<cstring> using namespace std; ...

  2. HTML5 重力感应效果,实现摇一摇效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. 机器学习10k均值

    下面介绍无监督机器学习算法,与前面分类回归不一样的是,这个不知道目标变量是什么,这个问题解决的是我们从这些样本中,我们能发现什么. 这下面主要讲述了聚类算法,跟数据挖掘中的关联挖掘中的两个主要算法. ...

  4. iOS:去除UITableView的空白行

    要去除UITableView在运行时显示的多余空白行,只需要将TableView的Style从Plain改为Grouped即可.

  5. MVC.Net: jqueryval错误

    当使用Mvc.net创建Create表单后,firebug Create页面会出现404 Not Found - http://192.168.3.95:7001/bundles/jqueryval& ...

  6. saprk里面的action - aggregate

    上一篇讲到了spark里面的action函数: Action列表: reduce collect count first take takeSample takeOrdered saveAsTextF ...

  7. canvas学习相关的一点东西

    <!DOCTYPE html> <html> <head> <style> canvas { border: 1px dashed black; } & ...

  8. quick-cocos2d-x教程7:程序框架内framework文件夹分析

    framework是整个框架执行时的实现代码.所以一定要细致看这个文件夹的文件.我们先从framework文件夹中的init.lua分析起走. init.lua文件里,框架初始化时,会自己主动加载下面 ...

  9. NSRange and NSString对象

    http://www.cnblogs.com/pengyingh/articles/2451292.html 当谈到NSString方法时,你会发现很多都涉及到NSRange.不必操心.它事实上仅仅只 ...

  10. Android 依据EditText搜索框ListView动态显示数据

    依据EditText搜索框ListView动态显示数据是依据需求来的,认为这之中涉及的东西可能比較的有意思,所以动手来写一写.希望对大家有点帮助. 首先.我们来分析下整个过程: 1.建立一个layou ...