摘要:通过本文简述基于接口编程的优势,给一些初学者在面向接口编程与系统架构分层方法予以启示,同时,也帮助自身复习下 JDBC 相关操作。
下面直接切入主题,这里主要利用一个较为简单的基于 JDBC 数据库操作的示例来说明问题。首先来描述下分层概况:(一) DAO 层或者叫数据访问层吧,主要是用于数据持久化操作。(二)业务逻辑层或者称之为 Service 层吧,顾名思义操作业务逻辑相关内容。(三)其实这里还应该有一层表示层,就是用来进行数据显示的,在此我直接把它给忽略了,把测试层(我暂且这么称呼)数据显示当表示层用,主要是为了简化操作。(四)最后,还有一个贯穿三层的模型层,主要用于数据的封装与传输。见图
层对层自己都直接提供了接口,而并非直接调用具体的接口实现类。这样带来的好处是什么呢,就是说修改任意某层的代码基本上不会影响到其它层代码的改动,这就是抽象带来的好处。对于DAO数据库层,我在例子中默认采用了JDBC实现,同时又简单地写了一个Hibernate方式的实现。而对于这两种方式的改动,只需要修改配置文件就可以了,而不需要去修改原来JDBC的实现以及其它层的代码。而这种优势对于其它另外的层也一样,在此以DAO数据访问层为例。
开发工具:Eclipse 3.x Mysql5.1
工程文件说明:见图
(1)org.wiki.jdbc.dao 存放了DAO数据访问层的接口及具体实现类,包括JDBC与Hibernate实现(伪实现),属数据库层;
(2)org.wiki.jdbc.domain 存放领域模型对象,属模型层;
(3)org.wiki.jdbc.exception存放相应的异常类;
(4)org.wiki.jdbc.factory存放用于生成相应DAO实现的工厂类;
(5)org.wiki.jdbc.service存放业务逻辑接口及具体实现类,属业务层;
(6)org.wiki.jdbc.test存放相关测试类,暂且称表示层;
(7)org.wiki.jdbc.utils存放JDBC数据库操作的相关工具类;
(8)jdbc.properties数据库及DAO具体实现类配置信息;
(9)lib存放数据库操作的jar
(10)db存放数据库可能用到的SQL
源码使用方法:下载源码解压导入eclipse修改jdbc.properties数据库配置信息,利用Mysql创建相应数据库(默认jdbc,表名user)就可以运行了。
参考:传智播客关于JDBC的视频http://www.itcast.cn/
用惯了Hibernate之类的ORM框架发现最基本的JDBC有些遗忘了,所以在回头复习下……