循速渐进学用Session Bean(五) - 编程入门网
d, whether an exception occurred or nottry{ps.close();}catch (Exception ignore){}}}protected Connection getConnection()throws SQLException, NamingException{// Get a reference to the naming serviceInitialContext context = new InitialContext();// Get the data source for the pricing databaseDataSource ds = (DataSource) context.lookup("java:comp/env/jdbc/PriceDB");// Ask the data source to allocate a database connectionreturn ds.getConnection();}} 循速渐进学用Session Bean(五)(2)时间:2008-05-07PricingImpl中的getConnection值得留意一下。它使用JNDI(命名服务)来定位到一个名字为java:comp/env/jdbc/PriceDB的数据源。java:comp/env指的是你的session bean使用的JNDI naming context。当session bean被配置在一个EJB容器时,容器为你的bean设置了一个带有各个项目的naming context,这些项目是在你配置bean时建立的。java:comp/env naming context让你将逻辑名字和各种不同资源联系起来。这样你就可以在编写bean时,无需知道数据源或者Home接口的准确名字。当在配置bean到容器中时,设置bean使用的名字和真正资源名相关联。这样bean就并不绑定到某个特别的资源名字,可以提升bean的移植性。 在配置Pricing bean时,必须指定jdbc/PriceDB的一个别名。如果使用J2EE SDK带有的Cloudscape数据库,这个别名必须是jdbc/Cloudscape。否则,必须在EJB服务器中建立一个数据源,指向要使用的数据库。当配置Pricing bean时,指定jdbc/PriceDB引用的数据源名字。jdbc/PriceDB是一个逻辑名,Pricing bean可以使用多种不同的数据库,只要在配置bean时修改一下关联就可以了。 如果使用不同的数据源,可以在配置的时候修改它。还可以建立一个default.properties文件,里面包含有你需要使用的驱动和数据库信息。例如,对于Oracle数据库,可以使用以下的default.properties文件:
这样就建立了一个可选的数据源,它的名字是jdbc/Oracle,jdbc/PriceDB关联可以修改以便使用Oracle数据源。再次说明的是,你并不需要修改Pricing bean,你只要修改配置属性。 假定正在运行J2EE SDK配置工具,在配置工具的资源引用部分(Resource References section)设置了jdbc/PriceDB naming项目,如图6.8所示。 ********图6.8************** 资源引用对话框允许你设置一个session bean的naming context Prcing bean和HelloWorldSession bean在配置上只有一点不同,这就是你必须在JNDI Names的标记页中指定jdbc/PriceDB的别名,如图6.9所示。 ********图6.9************** JNDI names页让你设置bean使用的各种JNDI别名 循速渐进学用Session Bean(五)(3)时间:2008-05-07写一个客户来测试Pricing bean是很简单的,这个程序和你已经看到过的其它客户程序类似。列表6.12展示了Pricing的测试客户程序。
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |