欢迎来到天天文库
浏览记录
ID:38259739
大小:20.20 KB
页数:4页
时间:2019-06-07
《JDBC与JNDI应用比较》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、JDBC与JNDI应用比较JNDI是Java命名与目录接口(JavaNamingandDirectoryInterface),在J2EE规范中是重要的规范之一,不少专家认为,没有透彻理解JNDI的意义和作用,就没有真正掌握J2EE特别是EJB的知识。那么,JNDI到底起什么作用?要了解JNDI的作用,我们可以从“如果不用JNDI我们怎样做?用了JNDI后我们又将怎样做?”这个问题来探讨。没有JNDI的做法:程序员开发时,知道要开发访问MySQL数据库的应用,于是将一个对MySQLJDBC驱动程序类的引用进行了编码,并通过使用适当的JDBCURL连接到数据库。就像以下代码这样
2、:Connectionconn=null;try{Class.forName("com.mysql.jdbc.Driver",true,Thread.currentThread().getContextClassLoader());conn=DriverManager.getConnection("jdbc:mysql://MyDBServer?user=qingfeng&password=mingyue");......conn.close();}catch(Exceptione){e.printStackTrace();}finally{if(conn!=null){t
3、ry{conn.close();}catch(SQLExceptione){}}}这是传统的做法,也是以前非Java程序员(如Delphi、VB等)常见的做法。这种做法一般在小规模的开发过程中不会产生问题,只要程序员熟悉Java语言、了解JDBC技术和MySQL,可以很快开发出相应的应用程序。没有JNDI的做法存在的问题:1、数据库服务器名称MyDBServer、用户名和口令都可能需要改变,由此引发JDBCURL需要修改;2、数据库可能改用别的产品,如改用DB2或者Oracle,引发JDBC驱动程序包和类名需要修改;3、随着实际使用终端的增加,原配置的连接池参数可能需要调整
4、;4、......解决办法:程序员应该不需要关心“具体的数据库后台是什么?JDBC驱动程序是什么?JDBCURL格式是什么?访问数据库的用户名和口令是什么?”等等这些问题,程序员编写的程序应该没有对JDBC驱动程序的引用,没有服务器名称,没有用户名称或口令——甚至没有数据库池或连接管理。而是把这些问题交给J2EE容器来配置和管理,程序员只需要对这些配置和管理进行引用即可。由此,就有了JNDI。用了JNDI之后的做法:首先,在在J2EE容器中配置JNDI参数,定义一个数据源,也就是JDBC引用参数,给这个数据源设置一个名称;然后,在程序中,通过数据源名称引用数据源从而访问后台
5、数据库。具体操作如下(以JBoss为例):1、配置数据源在JBoss的D:jboss420GAdocsexamplesjca文件夹下面,有很多不同数据库引用的数据源定义模板。将其中的mysql-ds.xml文件Copy到你使用的服务器下,如D:jboss420GAserverdefaultdeploy。修改mysql-ds.xml文件的内容,使之能通过JDBC正确访问你的MySQL数据库,如下:My
6、SqlDSjdbc:mysql://localhost:3306/lwcom.mysql.jdbc.Driverrootrootpasswordorg.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter7、sorter-class-name>mySQL这里,定义了一个名为MySqlDS的数据源,其参数包括JDBC的URL,驱动类名,用户名及密码等。2、在程序中引用数据源:Connectionconn=null;try{Contextctx=newInitialContext();ObjectdatasourceRef=ctx.lookup("jav
7、sorter-class-name>mySQL这里,定义了一个名为MySqlDS的数据源,其参数包括JDBC的URL,驱动类名,用户名及密码等。2、在程序中引用数据源:Connectionconn=null;try{Contextctx=newInitialContext();ObjectdatasourceRef=ctx.lookup("jav
此文档下载收益归作者所有