首页 > 学院 > 开发设计 > 正文

JNDI连接池连接Oracle数据库

2019-11-15 00:17:10
字体:
来源:转载
供稿:网友
JNDI连接池连接Oracle数据库

今天做了一个评论的小功能,要求用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;    }}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表