2)使用EJB技术实现多数据库的访问
EJB是Sun定义的一组标准的Java扩展的开发接口,称为Enterprise Java Bean API。这些应用程序编程接口(API)为各种各样的中间件实现了不依赖供应商的编程接口,Enterprise Java Bean技术把Java组件的概念从客户机域扩展到了服务器域,它使Java技术发展成为一种强健的、可伸缩的环境,能够支持以任务为关键的企业信息系统。
Enterprise Bean运行在EJB容器中。EJB容器在运行时管理Enterprise Bean的各个方面,包括远程访问Bean、安全性、持续、事物、并行性和资源的访问与合用等。
EJB容器不允许客户机应用程序直接访问Enterprise Bean。当客户机应用程序调用Enterprise Bean上的远程方法时,容器首先拦截调用,以确保持续、事物和安全性都正确应用于客户机对EJB执行的每一个操作。EJB容器的结构图如图1所示。
图1 EJB容器结构示意图
EJB组件分为3种主要类型:会话Bean(Session Bean)、实体Bean(Entity Bean)和消息驱动Bean(Message-Driven Bean)。会话Bean实现某些在服务器上运行的业务逻辑。会话Bean对象不在多台客户机之间共享。其特点是(1)它代表单个客户机执行。(2)会话Bean包含事物处理。(3)可以使用会话Bean更新共享数据库中的数据。(4)会话Bean的生存期就是客户机的生存期。EJB依赖EJB容器来获取它的需求。EJB通过容器来访问JDBC连接,调用其他EJB和获得它自身的引用或访问特性等。EJB通过回调方法、EJBContext和Java命名和目录接口(JNDI)与容器交互。(5)会话Bean的数据会在EJB服务器运行失败时被删除。实体Bean代表一个存储在持久性存储器中的实体的对象视图。消息驱动Bean,使得EJB容器能够异步地接收消息。
对于多数据库访问,EJB技术可以提供一个比较强大、灵活的解决方案。首先构造多个会话Bean,在这些模型组件里,我们要处理数据库的连接、定义,查找、插入、删除操作等方法,然后创建和部署EJB,这样可以实现对多数据库的访问。会话Bean的结构如下:
public class DatabaseConnectSessionBean implements javax.ejb.SessionBean { …… public int checkUserLogin(String userid,String password) throw NameingException,SQLException { ……
//得到初始上下文
InitialContext ic=new InitialContext();
//获得数据源
DataSource ds=(DataSource) ic.lookup(数据库JDNI名字);
//建立数据库连接
Connection conn=null; try{ conn ds.getConnection(数据库用户名,数据库用户密码); //进行数据库数据的操作 } } } |
从上述的过程和语句我们可以发现,使用EJB技术可以访问各种不同类型的数据库,而且支持数据库的“事务”的机制,这样使对数据的处理能够保证数据的一致性。所以使用EJB技术能实现对多个数据库的访问,而且安全性、持续、事物、并行性和资源的管理由容器来管理,这样使编程具有简单性。
结束语
EJB技术是解决异构数据库环境下的多数据库信息处理一种有效的方法。它不但可以解决数据库异构的问题,更是解决操作系统异构的最有效的方法。这样可以达到不同信息资源的共享及信息的综合统计查询,这也是企事业单位迫切要解决的实际问题。我们认为EJB技术能更好的解决异构数据库环境下的电子商务和电子政务方面的信息交换问题。