倔强的土豆

这只是一个备份!源地址:http://blog.csdn.net/stubbornpotatoes
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

J2EE核心技术-JMS和JDBC

Posted on 2012-01-03 20:49  倔强的土豆  阅读(868)  评论(3编辑  收藏  举报
         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.关闭数据库语句和数据库连接

 

                                                                                                                                                                                                                                                                                         (接下篇)