生活
JDNI 、JDNI连接数据库
2023-04-09 02:15  浏览:46

jdni有什么用

下次如果什么不理解可以先百科一下 那个很方便

jdni 我的理解就是隐藏你的数据库的IP 端口 用户名 密码 设置等信息

在需要访问数据库的时候直接通过jdni提供的接口类的.getConnection()方法来获得连接 这样比较安全

context说不明白 就是tomcat里配置一个项目 必须用它来配置 路径唯一 一个项目对应一个 这个项目的配置大体都在context标签里设置 具体看下下面这个链接吧 挺长的 了解下就行了

什么是数据源?

数据源是提供某种所需要数据的器件或原始媒体。在数据源中存储了所有建立数据库连接的信息。就像通过指定文件名称可以在文件系统中找到文件一样,通过提供正确的数据源名称,你可以找到相应的数据库连接。

数据源名称(data source name,DSN)是包含了有关某个特定数据库信息的数据结构,这个信息是开放式数据库连接驱动能够连接到数据库上必需的信息。

DSN存储在注册表或作为一个单独的文本文件,DSN里面包含的信息有名称、目录和数据库驱动器,以及用户ID和密码(根据DSN的类型)。

开发人员为每个数据库创建一个独立的DSN。为了连接到某个数据库,开发人员需要在程序中指定DSN。相反,没有DSN的连接则需要在程序中指定所有必要的信息。

扩展资料:

数据源的数据包:

1、DBCP

DBCP类包位于 /lib/jakarta-commons/commons-dbcp.jar,DBCP是一个依赖 Jakarta commons-pool对象池机制的数据库连接池,所以在类路径下还必须包括/lib/jakarta- commons/commons-pool.jar。

2、C3P0

C3P0是一个开放源代码的JDBC数据源实现项目,它在lib目录中与Hibernate一起发布,实现了JDBC3和JDBC2扩展规范说明的 Connection 和Statement 池。

3、ODBC

ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。

参考资料来源:百度百科-数据源

JNDI是什么

JNDI全称 Java Naming and Directory Interface

JNDI是Java平台的一个标准扩展,提供了一组接口、类和关于命名空间的概念。如同其它很多Java技术一样,JDNI是provider-based的技术,暴露了一个API和一个服务供应接口(SPI)。这意味着任何基于名字的技术都能通过JNDI而提供服务,只要JNDI支持这项技术。JNDI目前所支持的技术包括LDAP、CORBA Common Object Service(COS)名字服务、RMI、NDS、DNS、Windows注册表等等。很多J2EE技术,包括EJB都依靠JNDI来组织和定位实体。

JDNI通过绑定的概念将对象和名称联系起来。在一个文件系统中,文件名被绑定给文件。在DNS中,一个IP地址绑定一个URL。在目录服务中,一个对象名被绑定给一个对象实体。

JNDI中的一组绑定作为上下文来引用。每个上下文暴露的一组操作是一致的。例如,每个上下文提供了一个查找操作,返回指定名字的相应对象。每个上下文都提供了绑定和撤除绑定名字到某个对象的操作。JNDI使用通用的方式来暴露命名空间,即使用分层上下文以及使用相同命名语法的子上下文。

jndi的用途:

1。你可以用jndi来得到object类的属性

如:Attribute attr =directory.getAttributes(personName).get("email");

String email = (String)attr.get();

2。你可以用jndi来搜索对象

如:foxes = directory.search("o=Wiz,c=US", "sn=Fox", controls);

查找谁的名字叫Fox在wiz部门的员工?

3。你可以用jndi通过naming/directory服务查询像printers和databases的对象

如:查询 Printer

Printer printer = (Printer)namespace.lookup(printerName);

printer.print(document);

4。你可以用jndi列表出命名空间的特殊级别的内容

如:

NamingEnumeration list = namespace.list("o=Widget, c=US");

while (list.hasMore()) {

NameClassPair entry = (NameClassPair)list.next();

displ***(entry.getName(), entry.getClassName());

}

jdni 数据库连接池连接还需要关闭吗

使用完后必须con.close()掉,

使用

连接池

的话,执行con.close并不会关闭与数据库的TCP连接,而是将连接还回到池中去,如果不close掉的话,这个连接将会一直被占用,直接连接池中的连接耗尽为止。

jboss启动

1.首先请确定你的sql2000己经安装了sp3或是sp4(这是sp4下载地址:;FamilyID=8e2dfc8d-c20e-4446-99a9-b7f0213f8bc5)

2.查看你的jboss目录docsexamplesjca文件夹,你将看到一些mysql-ds.xml,

oracle-ds.xml,mssql-ds.xml的文件,鉴于你要连接的是sql2000,你可以打开

mssql-ds.xml(jboss数据源配置文件命名方式是 任意名字-ds.xml):

?xml version="1.0" encoding="UTF-8"?

datasources

local-tx-datasource

jndi-nameMSSQLDS/jndi-name!--jndi名字--

connection-urljdbc:microsoft:sqlserver://localhost:1433;DatabaseName=MyDatabase/connection-url!--在sql2000里先建个MyDatabase的数据库--

driver-classcom.microsoft.sqlserver.jdbc.SQLServerDriver/driver-class

user-name用户名/user-name!--数据库用户名--

password密码/password!--数据库登陆密码--

metadata

type-mappingMS SQLSERVER2000/type-mapping

/metadata

/local-tx-datasource

/datasources

然后将这个文件另存到jboss目录下 server应用服务器名(比如说def***lt或是all,你也可以自己改名)deploy 目录下面

在启动jboss时请先将sql2000 jdbc驱动考备到jbossserver应用服务器名(比如说def***lt或是all,你也可以自己改名)lib目录下面

然后你键入

run -c (服务器名) --host=localhost

(说明:服务器名可以是def***lt或是all,一般启动def***lt就行)

鉴于jboss的数据源只能在jboss服务器内部才能调用不能通过远程方法调用获取,所以你可以开发一个web工程打包成war放到server你启动的应用服务器(比如说def***lt或是all)deploy 目录下.比如在你开发的web工程中的一个jsp文件可以通过以下语句调用:

java.lang.String jndiName = "java:/MSSQLDS"

javax.naming.Context ctx = new javax.naming.InitialContext();

javax.sql.DataSource ds = (DataSource)ctx.lookup(jndiName);

这样你就可以获得jboss到sql2000的连接了

如果不能成功的话请确认sql2000己启动,sql2000 jdbc jar文件己经考备到jboss启动服务器的lib目录下,用于jdbc连接的端口1433是否己经打开

(可以通过以下方式查看该端口是否打开:点击开始-运行-cmd-netstat -a)

如果你是使用Myeclipse自动部署到jboss的话请先查看一下MyEclipse默认打包到的路径,JBoss4.2.2GA的话是将war打包到serverJBoss4.2.2,所以你应该先将def***lt或是all目录下的文件考备到serverJBoss4.2.2目录下然后再自动部署,在myeclipse配置你的jboss服务器时可以添加启动参数-c JBoss4.2.2 --host=localhost

最后忠心希望你实验成功!!!!

jndi是什么

JNDI是 Java 命名与目录接口(Java Naming and Directory Interface),在J2EE规范中是重要的规范之一,是一组在Java应用中访问命名和目录服务的API,是SUN公司提供的一种标准的Java命名系统接口,命名服务将名称和对象联系起来,使得我们可以用名称访问对象。目录服务是一种命名服务,在这种服务里,对象不但有名称,还有属性。

JNDI可访问的现有的目录及服务有:

DNS、XNam 、Novell目录服务、LDAP(Lightweight Directory Access Protocol轻型目录访问协议)、 CORBA对象服务、文件系统、Windows XP/2000/NT/Me/9x的注册表、RMI、DSML v1v2、NIS。

JDNI的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于JDNI连接数据库、JDNI的信息别忘了在本站进行查找喔。

发表评论
0评