发布网友 发布时间:2022-04-07 18:50
共3个回答
懂视网 时间:2022-04-07 23:11
JNDI介绍 什么是JNDI? JNDI(Java Naming and Directory Interface,Java命名和目录接口) 是一组在Java应用中访问命名和目录服务的API 通过名称将资源与服务进行关联 什么是连接池技术? 连接池 连接池是在内存中预设好一定数量的连接对象,以备用户在进行数据库操作时直接使用 性能 数据库连接的建立、断开均由管理池统一管理 连接池技术与传统数据库连接的比较 数据库操作性能得到提升 通过连接池管理数据库的连接与释放、提高了系统资源的使用效率 为什么使用连接池? Ø传统数据库连接方式的不足 Ø每一次请求时均需要与数据库进行连接,资源占用较多 Ø当并发访问数量较大时,网站速度收到极大影响 Ø在访问结束后必须要关闭连接释放资源 Ø系统的安全性和稳定性相对较差 企业级开发需要稳健和高效的数据访问层 完成对数据库的CRUD操作 能够处理数据库发生的各种错误 可以灵活的修改配置 提供方便使用的工具 高性能 访问数据源 第一步:Tomcat的conf/context.xml中的配置 加入数据库驱动文件 把数据库驱动的.jar文件,加入到Tomcat的commonlib中 应用程序的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数据库
标签:
热心网友 时间:2022-04-07 20:19
jdbc就是直接连接数据库,而jndi一般是在服务器上配置了数据库连接池后采用的一种方便用户查找的方法。如果自己学习就用jdbc,但是如果做项目的话一定记得配置数据库连接池并使用jndi,这样快一些,也更专业一些。热心网友 时间:2022-04-07 21:37
jdbc链接数据库比较快,但在程序中使用的话就比较烦琐,每次连接都要有一定的编码,和数据库的连接需要手动关闭.