- 浏览: 766519 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
webcover:
最新的中文网络记事本: 破笔记
网络记事本:http://w ...
五个最佳的免费网络记事本 -
fred_nxh:
很好,长见识了
java中堆(heap)和堆栈(stack)有什么区别 -
efeige:
兄弟,请问一下,为什么我的2003系统 网站属性 里面没有“服 ...
启用IIS Gzip 页面压缩技术 加速网页的浏览速度 -
252401762:
同样的问题啊,不知道楼主是否已经转做售前了
售前和 开发的选择 -
yuan:
膜拜玩静电的现在呢?
来回顾一下,当年的“发烧史”吧:
一直都JNDI这个名字,可是一直都没有去研究过,因为工作中一直都没用到。。。
这次面试的时候用到了。。。
于是乎,找来例子练练手。。
<
Context
path
="/connjndi"
docBase
="D:\workspace\TestJndi\WebRoot"
reloadable
="true"
>
< Resource name ="jdbc/SampleData" auth ="Container" type ="javax.sql.DataSource"
maxActive ="100" maxIdle ="30" maxWait ="10000"
username ="sampledata" password ="password" driverClassName ="oracle.jdbc.OracleDriver"
url ="jdbc:oracle:thin:@//localhost:1521/mondrian" />
</ Context >
< Resource name ="jdbc/SampleData" auth ="Container" type ="javax.sql.DataSource"
maxActive ="100" maxIdle ="30" maxWait ="10000"
username ="sampledata" password ="password" driverClassName ="oracle.jdbc.OracleDriver"
url ="jdbc:oracle:thin:@//localhost:1521/mondrian" />
</ Context >
Tomcat标准数据源资源工厂配置项如下:
* driverClassName - 所使用的JDBC驱动类全称。
* maxActive - 同一时刻可以自数据库连接池中被分配的最大活动实例数。
* maxIdle - 同一时刻数据库连接池中处于非活动状态的最大连接数。
* maxWait - 当连接池中没有可用连接时,连接池在抛出异常前将等待的最大时间,单位毫秒。
*password - 传给JDBC驱动的数据库密码。
* url - 传给JDBC驱动的连接URL。
* user - 传给JDBC驱动的数据库用户名。
* validationQuery - 一个SQL查询语句,用于在连接被返回给应用前的连接池验证。
* 如果指定了该属性,则必为至少返回一行记录的SQL SELECT语句。
在web.xml中添加:
<
description
>
Oracle Test App
</
description
>
< resource-ref >
< description > DB Connection </ description >
< res-ref-name > jdbc/SampleData </ res-ref-name >
< res-type > javax.sql.DataSource </ res-type >
< res-auth > Container </ res-auth >
</ resource-ref >
< resource-ref >
< description > DB Connection </ description >
< res-ref-name > jdbc/SampleData </ res-ref-name >
< res-type > javax.sql.DataSource </ res-type >
< res-auth > Container </ res-auth >
</ resource-ref >
写一个简单的jsp测试了一下:
1
<%
@ page
import
=
"
java.sql.*,javax.sql.*,javax.naming.*
"
%>
2
3 <%
4 Connection conn = null ;
5 try
6 {
7 Context ctx = new InitialContext();
8 DataSource ds = (DataSource)ctx.lookup( " java:comp/env/jdbc/SampleData " );
9 conn = ds.getConnection();
10 System.out.println( " connection pool connected !! " );
11 } catch (NamingException e) {
12 System.out.println(e.getMessage());
13 } catch (SQLException e) {
14 System.out.println(e.getMessage());
15 e.printStackTrace();
16 } finally
17 {
18 conn.close();
19 }
20 %>
2
3 <%
4 Connection conn = null ;
5 try
6 {
7 Context ctx = new InitialContext();
8 DataSource ds = (DataSource)ctx.lookup( " java:comp/env/jdbc/SampleData " );
9 conn = ds.getConnection();
10 System.out.println( " connection pool connected !! " );
11 } catch (NamingException e) {
12 System.out.println(e.getMessage());
13 } catch (SQLException e) {
14 System.out.println(e.getMessage());
15 e.printStackTrace();
16 } finally
17 {
18 conn.close();
19 }
20 %>
我就是这样连接成功了。
写的时候还是看了下々上善若水々 的博客,总感觉他的写得比较全,而我总感觉写不出比他好的,又不能写出和他不同的地方。。就这样子啦。。
PS:在查资料的时候,看到在CSDN中有位朋友谈到了JNDI的用处:
JNDI不止用于数据源,其可以用于存储和获得任何类型的已命名的java对象等等.
如果使用JDBC有thin和oci两种连接方式:
[先说thin]
打开数据库连接方式:DriverManager.getConnection
1
DriverManager.registerDriver(
new
oracle.jdbc.OracleDriver());
2
3 Connection myConnection = DriverManager.getConnection(
4 " jdbc:oracle:thin:@test2000:1521:orac " , // orac为oracle的SID
5 " user " ,
6 " password "
7 );
2
3 Connection myConnection = DriverManager.getConnection(
4 " jdbc:oracle:thin:@test2000:1521:orac " , // orac为oracle的SID
5 " user " ,
6 " password "
7 );
或者用前面给出的那个
OracleDataSource myODS = new OracleDataSource(); //其属性简单明了,不难掌握
Connection myConnection = myODSgetConnection("user","password");
[再说OCI](可以使连接池中有多个缓冲的连接)
1
OracleOCIConnectionPool myOOCP
=
new
OracleOCIConnectionPool();
2
3 // set the attributes for the physical database connections
4 myOOCP.setServerName( " test2000 " );
5 myOOCP.setDatabaseName( " ORCL " );
6 myOOCP.setDriverType( " oci " );
7 myOOCP.setPortNumber( 1521 );
8 myOOCP.setUser( " store_user " );
9 myOOCP.setPassword( " store_password " );
10
11 // set the values for the dynamic attributes of myOOCP
12 Properties myProperties = new Properties();
13 myProperties.put(OracleOCIConnectionPool.CONNPOOL_MIN_LIMIT, " 5 " );
14 myProperties.put(OracleOCIConnectionPool.CONNPOOL_MAX_LIMIT, " 10 " );
15 myProperties.put(OracleOCIConnectionPool.CONNPOOL_INCREMENT, " 2 " );
16 myProperties.put(OracleOCIConnectionPool.CONNPOOL_TIMEOUT, " 30 " );
17 myProperties.put(OracleOCIConnectionPool.CONNPOOL_NOWAIT, " true " );
18 myOOCP.setPoolConfig(myProperties);
19
20 // request a connection instance from myOOCP and store
21 // the connection instance in myConnection
22 OracleOCIConnection myConnection = (OracleOCIConnection) myOOCP.getConnection();
23
2
3 // set the attributes for the physical database connections
4 myOOCP.setServerName( " test2000 " );
5 myOOCP.setDatabaseName( " ORCL " );
6 myOOCP.setDriverType( " oci " );
7 myOOCP.setPortNumber( 1521 );
8 myOOCP.setUser( " store_user " );
9 myOOCP.setPassword( " store_password " );
10
11 // set the values for the dynamic attributes of myOOCP
12 Properties myProperties = new Properties();
13 myProperties.put(OracleOCIConnectionPool.CONNPOOL_MIN_LIMIT, " 5 " );
14 myProperties.put(OracleOCIConnectionPool.CONNPOOL_MAX_LIMIT, " 10 " );
15 myProperties.put(OracleOCIConnectionPool.CONNPOOL_INCREMENT, " 2 " );
16 myProperties.put(OracleOCIConnectionPool.CONNPOOL_TIMEOUT, " 30 " );
17 myProperties.put(OracleOCIConnectionPool.CONNPOOL_NOWAIT, " true " );
18 myOOCP.setPoolConfig(myProperties);
19
20 // request a connection instance from myOOCP and store
21 // the connection instance in myConnection
22 OracleOCIConnection myConnection = (OracleOCIConnection) myOOCP.getConnection();
23
这个就当是个引子,之后对JNDI有个深入的了解和认识。。。。
发表评论
-
ocx插件插入网页实现自动更新与安装注册
2010-07-27 16:17 6649ocx插件插入网页实现 ... -
JIRA
2010-04-02 16:28 1210JIRA 百科名片 JIRA是集项目计划、任务分配、需求管 ... -
ArrayList和LinkedList的用法区别
2010-03-17 10:58 1927ArrayList和LinkedList的用法区别 (2 ... -
Java 中Vector、ArrayList和LinkedList 的区别时间
2010-03-17 10:25 1732Java 中Vector、ArrayList和LinkedLi ... -
多层架构的Web开发框架模型
2010-03-14 00:31 1948摘要:在经典的J2EE四层体系结构的基础上增加数据持久层,提出 ... -
Java语言编码规范(Java Code Conventions
2010-03-08 01:17 8291 介绍(Introduction)1.1 为什么要有编码规范 ... -
IT 的规划
2010-02-21 21:07 764本文说的这位网友,在I ... -
记忆学
2010-02-10 00:50 675http://bbs.jiyifa.cn/read.php?t ... -
java析构函数替代者finalize()解说
2010-01-21 22:18 2555java析构函数替代者finali ... -
Java的GC机制总结(0) ---finalize()方法
2010-01-21 22:00 1216其实了解JAVA的人,都知道JAVA的GC机制是其的一大优点, ... -
Java认证考试
2010-01-14 12:30 848Java认证考试 关于Java方面,Sun推出四项认证:Su ... -
集合框架
2010-01-13 23:24 653java 集合框架 对象的集合 如果程序的 ... -
Java集合框架使用总结
2010-01-13 21:31 668Java集合框架使用总结 ... -
关于JAVA中的线程安全
2010-01-13 10:34 1548关于JAVA中的线程安全 ... -
Java 理论与实践: 并发集合类
2010-01-13 01:27 837DougLea的 util.concurrent 包除了包含许 ... -
java main 主函数
2010-01-10 14:28 2327java主函数一般定义如下:public static ... -
java新式for循环
2009-12-29 15:51 796java新式for循环 2008-08-04 13:48:2 ... -
2009年的Java技术发展趋势展望
2009-11-08 21:28 764已经有14岁的Java在日新月异的IT技术领域内不算年轻,但它 ... -
MyEclipse要注册
2009-11-07 18:37 1693yEclipse怎么注册都不知道。我说他没有注册,他硬要说已经 ... -
浅谈设计模式在JAVA中的具体运用
2009-10-27 23:32 947浅谈设计模式在JAVA ...
相关推荐
Java JNDI(Java Naming and Directory Interface)是Java平台中用于访问命名和目录服务的一组API。它允许Java开发者在应用程序中查找和绑定资源,如数据源、EJB(Enterprise JavaBeans)、邮件服务器等。JNDI的核心...
### Java JNDI总结 #### 一、JNDI简介 **JNDI**(Java Naming and Directory Interface)是Java平台中的一个API,用于访问命名和目录服务,这些服务可以存储对象引用及其名称。JNDI的主要作用在于提供了一种在...
JavaJNDI(Java Naming and Directory Interface)是Java平台中用于访问命名和目录服务的一组API,它允许Java应用程序查找和管理分布在不同网络环境中的资源。数据连接池(Connection Pool)是Java应用中用于管理...
### Java JNDI 连接数据库详解 #### JNDI简介 Java Naming and Directory Interface (JNDI) 是一种在Java环境中访问命名和目录服务的API。它为开发人员提供了查找和引用远程对象的标准方法,这包括数据库资源、消息...
基于Java JNDI 操纵LDAP的基础实现,包括LDAP连接相关生命周期,认证的两种策略demo,条目的操作,schema的基础操作包括(attributeDefinition\objectDefinition\)但未包含相关syntaxDefinition的操纵. 没有资源分的朋友...
在IT领域,特别是Java开发中,`JAVA JNDI免证书修改AD域密码`是一个重要的主题,涉及到企业级应用与Active Directory(AD)域服务的交互。Active Directory是微软提供的目录服务,用于集中管理网络资源,如用户账户...
DataSource source = (DataSource) ic.lookup("java:comp/env/jdbc/jndidemo"); dbcon = source.getConnection(); 需要导的包 import javax.naming.Context; import javax.naming.InitialContext; import ...
Java 通过JNDI(Java Naming and Directory Interface)访问数据库是一种常见的做法,它提供了一种标准的方法来查找和管理资源,如数据源、EJB、邮件服务器等。JNDI在企业级应用中广泛使用,因为它允许应用程序与...
### JNDI Java操作示例解析 #### 一、引言 JNDI(Java Naming and Directory Interface)是Java平台中用于访问命名和目录服务的API。它提供了一种查找和定位应用程序所需的资源(如数据库连接、消息队列、EJBs等)...
JNDI(Java Naming and Directory Interface,Java命名和目录接口)是Java平台提供的一套API,用于在Java应用程序中访问命名和目录服务。它允许开发者以统一的方式查找、绑定和命名对象。本文将详细介绍JNDI在Tomcat...
在本文中,我们将深入探讨三种不同的RMI实现方法:原始方式、Spring框架集成以及JNDI(Java Naming and Directory Interface)。 ### 方式一:原始方式 原始的Java RMI方式是基于Java的标准API实现的,主要包括...
JNDI (Java Naming and Directory Interface) 是 Java 命名和目录接口的简称,自 Java 2 平台企业版问世以来一直是核心技术之一。它为开发者提供了一个统一的接口,用于查找、获取和管理各种分布式环境中的命名资源...
JNDI(Java Naming and Directory Interface)是Java平台的一部分,它允许开发人员访问命名服务,从而可以存储和检索应用程序组件名称和服务之间的映射关系。本文将详细介绍JNDI配置原理,并通过具体的示例帮助读者...
**JNDI**(Java Naming and Directory Interface)是Java平台的一部分,用于开发与名称和服务目录进行交互的应用程序。它允许Java应用程序查找并使用远程对象和服务。在J2EE环境中,JNDI提供了一种标准化的方式来...
JNDI是Java Naming and Directory Interface(JAVA命名和目录接口)的英文简写,它是为JAVA应用程序提供命名和目录访问服务的API(Application Programing Interface,应用程序编程接口)。
在IT行业中,Java Naming and Directory Interface (JNDI) 是一个关键的技术,它提供了一种标准的方法来查找和访问各种命名和目录服务。EJB(Enterprise JavaBeans)是Java EE平台的一部分,用于构建可部署在服务器...
Java Naming and Directory Interface (JNDI) 是Java平台中用于访问命名和目录服务的API,它为各种服务提供了一个统一的接口,如数据库连接、邮件服务等。在Java应用程序中,JNDI常用于查找和绑定资源,如数据源、...
在这个文件中,你需要配置JNDI(Java Naming and Directory Interface)名称、数据库URL、用户名、密码、连接池大小等信息。 3. **DBConn.java**:这可能是你的应用中负责获取和释放数据库连接的类。在该类中,通过...
JNDI是Java平台提供的一种标准服务接口,用于访问命名和目录服务,它允许应用程序查找、存储和管理各种类型的数据,如对象、配置信息等。本文将深入探讨`com.sun.jndi.providerutil.jar`在JNDI框架中的作用,以及...
Java开发人员经常使用Java Naming and Directory Interface (JNDI)来与AD进行交互。在本文中,我们将深入探讨如何使用Java JNDI来修改AD域密码,并重点讲解如何实现免SSL验证的方式。 首先,让我们了解JNDI。JNDI是...