JDBC学习笔记(一)
作者:thinkersky[Email:yanghuangming@rongji.com]
学习JAVA将近两个月了,前期接触的都只是关于表示层和逻辑层方面的知识,自认为对MVC三层控制模式和struts的相关设计已经有了初步的了解,所以近阶段准备就业务层相关知识进行攻关。先从JDBC着手。以下是一点心得,很多东东都是来源自网络(所以,网络绝对是好东西)。
1、JDBC的定义
什么是JDBC,相信有一定数据库编程经验的XDJM们一定是耳熟能详了,JDBC的定义是两组分别面向应用程序开发人员和数据库驱动程序开发人员的两组API(Application Programming Interface),以及将前者向后者转化的内在封装逻辑。对JAVA开发人员来说,我们只关心面向应用程序开发人员的接口即JDBC API,也就是sun公司免费提供的各个版本的JDK在包java.sql.*中定义的一系列类(Class)、接口(Interface)、例外(Exception)以及这些类和接口中定义的属性(property)和方法(method)。关于JDBC的定义,废话了这么多,我自己都有点晕了,你呢?
2、开发数据库应用系统的模型
模型这东东,从我开始学习OOP就像跟屁虫一样,随处可见,可咱还真离不开它呢。根据俺这些天来综合各家技术文裆,取其精华,去其糟粕,得,JDBC典型的开发模型可分为两种,分别是二层和三层结构。
① 二层模式
在这种结构模型下,应用程序(客户端)直接与数据库服务器相连,如图所示:
图1.1 数据库两层结构模型图
这种结构是一般中小企业内部基于局域网的软件系统的数据库模型,具有如下特点:
(1) 客户机程序直接向数据库服务器发送SQL请求,服务器返回相应的结果,? ???????客户机负责数据的标准化,结构简单,执行速度快。
(2) 受数据库厂家的限制,更换数据库管理系统时需要改写大量的客户端的原代码。
(3) 受数据库版本的限制,厂家更新数据库时,使用原数据库的应用程序要重新编译和发布。
(4) 所有与访问数据库管理系统的操作都是在客户机应用程序中实现的,造成客户机设计和修改的复杂,增加了客户机的成本。
不知道还有多少人在使用这种开发模型,反正,俺坚决不用,公司也不允许(我们部门都是开发B/S模式的),呵呵。
② 三层结构
在三层结构模型中,客户端和数据库服务器之间增加了一个中间服务器,客户机与中间服务器进行通信,由中间服务器处理客户机的请求并控制对一个或多个数据库管理系统的访问控制。如图所示:
图1.2 数据库三层结构模型图
这种结构是Internet普遍使用的模式,具有如下特点:
(1) 应用客户端与数据库服务器不直接相连,各自的设计相互独立,数据库管理系统的更换不影响客户机的程序。比如说:某一个WWW网站的Web服务器使用Apache+Tomcat(中间服务器)来响应HTTP请求,解释JSP程序。网站的数据库服务器采用MS SQL Server。Internet用户使用Internet Explorer 或者 Netscape Communictor (客户端)来浏览该网站。假设该网站将数据库服务器更换为Oracle,只需将JSP的源代码进行简单的更改。客户端(IE or NC)不需要进行任何改动, 依然可以正常浏览该网站。
(2) 密集任务的处理和数据操作抽象到更高层,简化了客户机的设计,防止客户机变的过于臃肿。
(3) 由专门的高性能服务器处理客户机的请求、与数据库进行通信,提高了数据库的访问效率。
不知道你们理解了多少,反正就俺来说,大学期间开发的所有项目都是采用这种模型的,asp.net+SQL Server 2000,异常惬意。其实,三层结构会变得越来越普遍,因为对于MIS管理者来说,这可以使得他们有机会在公共数据库上显式地定义合法操作等。
OK,先学习这一点点吧,晚上还有奥运会比赛,俺可是标准的爱国者,虽然接下来几天中国队的优势项目都相继谢幕,但是坚持到底可是俺们程序员的座右铭哦。
2004-8-25