您的位置:首页 > 数据库

J2EE核心技术-JMS和JDBC

2012-01-03 20:49 267 查看
         《J2EE核心技术--JSP和Servlet》和《J2EE核心技术--EJB分类》两片博文从比较浅层次的阐述了MVC架构中,包含各自核心组件的功能,但是要实现J2EE所说的分布式架构,还需一个非常重要的东西,就是三层之间的服务调用和信息交换,这就扯出了下面要写的东西:JMS、RMS、JDBC和JNDI。
        JMS、RMS、JDBC及JNDI都是为了满足在远程或本地不同的服务调用和信息交换而产生的,按照老规矩还是一个一个的来解析他们各自的用途和范围。

        JMS:在说JMS前要先提一下相关的背景,jms既Java消息服务(Java Message Service),何为消息,是指动态的、可流动或者说是可传递的,这个过程就是Messaging,jms的消息传递和常用的通信协议适用的场景是不一样的。Jms有着自己定义的消息格式和消息传递的模式,消息的格式由10个头字段、property的可选头字段和消息体组成,如下图:



        Header和properties都是键值对,body是具体要传递的内容,properties可以放一些自定义的附加信息。消息需要由生产者产生,同样的道理,消息也需要传递到需要它的消息消费者手中,其实,这其中还有一个叫jms Server的东西,也称为Destination,它专门在生产者和消费者中间中转和保存消息,这样就构成了3点结构,和咱们学过的MVC非常相似。

        消息传递的模式分为两种point to point(点对点),意思就是生产者产生一条消息,只能传递给一个消费者,就好像一个苹果只能给一人一样,前提当然是苹果不可再分了。



        但是ptp的传递方式不能达到消息的共享,因此publish/subscribe模式出现了,他可以达到多人共享消息,消息的发送者叫发布者,拿到消息的人叫订阅者,发布者发出消息后,暂存在中间服务器上,供订阅者接收,达到了消息的异步,就好像我说了一句,XXX是泡妞高手被大家听到了一样。



        除了传递消息,还要保障消息的可靠性和高效性。因此,JMS引入了确认和事务,就像JDBC那样,一次会话过程,可以手动完成事务,处理完成后,提交,确认所有的消息,但是发送不支持事务,这只能交给消息中间件来完成了。

        JDBC:有些编程基础的童鞋一看JDBC就基本明白它是干什么的,怎么干的,下面简单介绍一下,JDBC是sun公司的一个商标,但外界大多数人不这么认为,仍然认为JDBC是Java Database Connectivity的首字母简写,它不仅和微软的ODBC形似还有几分神似,用来完成应用程序和数据的交互,也就是MVC中M层和数据库之间的联系。

从下图可以看出JDBC的体系结构,他也是利用MVC的思想,JDBC API给上层应用(也就是程序员)提供统一的接口,下层再各自去管理不同的数据库。

 



 

       JDBC工作流程:

        1.注册JDBC驱动程序:JDBC-ODBC桥驱动模式、本地接口与Java驱动程序相结合的驱动模式、面向数据库中间件的驱动模式、直接连接的驱动模式。

        2.获取数据库连接:DataSource和DriverManager

        3.生成数据库语句:Statement、prepareStatement和CallableStatement。

        4.在数据库语句中嵌入SQL语句并执行

        5.关闭数据库语句和数据库连接

 

                                                                                                                                                                                                                                                                                        
(接下篇)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息