- 浏览: 750100 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
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 6577ocx插件插入网页实现 ... -
JIRA
2010-04-02 16:28 1178JIRA 百科名片 JIRA是集项目计划、任务分配、需求管 ... -
ArrayList和LinkedList的用法区别
2010-03-17 10:58 1838ArrayList和LinkedList的用法区别 (2 ... -
Java 中Vector、ArrayList和LinkedList 的区别时间
2010-03-17 10:25 1659Java 中Vector、ArrayList和LinkedLi ... -
多层架构的Web开发框架模型
2010-03-14 00:31 1912摘要:在经典的J2EE四层体系结构的基础上增加数据持久层,提出 ... -
Java语言编码规范(Java Code Conventions
2010-03-08 01:17 7531 介绍(Introduction)1.1 为什么要有编码规范 ... -
IT 的规划
2010-02-21 21:07 742本文说的这位网友,在I ... -
记忆学
2010-02-10 00:50 637http://bbs.jiyifa.cn/read.php?t ... -
java析构函数替代者finalize()解说
2010-01-21 22:18 2500java析构函数替代者finali ... -
Java的GC机制总结(0) ---finalize()方法
2010-01-21 22:00 1178其实了解JAVA的人,都知道JAVA的GC机制是其的一大优点, ... -
Java认证考试
2010-01-14 12:30 812Java认证考试 关于Java方面,Sun推出四项认证:Su ... -
集合框架
2010-01-13 23:24 618java 集合框架 对象的集合 如果程序的 ... -
Java集合框架使用总结
2010-01-13 21:31 635Java集合框架使用总结 ... -
关于JAVA中的线程安全
2010-01-13 10:34 1513关于JAVA中的线程安全 ... -
Java 理论与实践: 并发集合类
2010-01-13 01:27 753DougLea的 util.concurrent 包除了包含许 ... -
java main 主函数
2010-01-10 14:28 2291java主函数一般定义如下:public static ... -
java新式for循环
2009-12-29 15:51 759java新式for循环 2008-08-04 13:48:2 ... -
2009年的Java技术发展趋势展望
2009-11-08 21:28 730已经有14岁的Java在日新月异的IT技术领域内不算年轻,但它 ... -
MyEclipse要注册
2009-11-07 18:37 1666yEclipse怎么注册都不知道。我说他没有注册,他硬要说已经 ... -
浅谈设计模式在JAVA中的具体运用
2009-10-27 23:32 918浅谈设计模式在JAVA ...
相关推荐
NULL 博文链接:https://javaeedevelop.iteye.com/blog/1326583
javaJNDI连接数据库
JavaJNDI 数据链接池及 属性文件读取数据链接信息
基于Java JNDI 操纵LDAP的基础实现,包括LDAP连接相关生命周期,认证的两种策略demo,条目的操作,schema的基础操作包括(attributeDefinition\objectDefinition\)但未包含相关syntaxDefinition的操纵. 没有资源分的朋友...
JAVA JNDI免证书修改AD域密码
这是我平时自己总结的有关做开发时候遇到的JNDI配置相关的问题,不算多,拿出来分享一下
DataSource source = (DataSource) ic.lookup("java:comp/env/jdbc/jndidemo"); dbcon = source.getConnection(); 需要导的包 import javax.naming.Context; import javax.naming.InitialContext; import ...
JNDI java操作示例,JNDI java操作示例
java 采用JNDI访问数据库(三种方法)
JNDI 开发配置,有问题联系我,我觉得JNDI学习的人不是很多
三种方式实现java远程调用(rmi) 方式一:原始方式 方式二:spring 方式三:jndi 解压,放到myeclipse上可用
JNDI原理及详细解读,讲解非常详细,可下载浏览。
JNDI配置原理详解 JNDI配置原理详解.doc
JNDI是Java Naming and Directory Interface(JAVA命名和目录接口)的英文简写,它是为JAVA应用程序提供命名和目录访问服务的API(Application Programing Interface,应用程序编程接口)。
此文的目的是记录自己学习j2ee的一些过程。 这理解过程中可能有一些错误,如果高手看到了我的文章希望能够替我指正,感激不尽!!! 同时也希望能从一个初学者的角度去理解一些东西为后来学习j2ee的人提供一些...
JNDI配置文件 使用方法 已经配置好了, 直接更换tomcat里面相应的文件
NULL 博文链接:https://gukeming888.iteye.com/blog/1714402
jtds技术是企业比较常用的连接技术,里面有jar包、context.xml、DBConn.java,一看就能连
NULL 博文链接:https://dolphin-ygj.iteye.com/blog/436936
java JNDI方式修改AD域密码 免ssl验证方式修改AD域密码 LDAP SSL 证书 javassl 很实用的一段代码,免去了复杂的证书操作过程。