小结:实例解析DAO设计模式工作流程(无框架)
昨儿学Spring感觉对DAO设计模式一知半解,就扒了框架自己写了一个实例。花了一整天时间,不过收获很大,趁着没忘赶紧记录一下,希望以后有时间再来改进。
概念就不赘述了,网上有的是,就从测试程序下手 一步步分析一下。
文件结构是按照Spring写的,也分dao、model、service,如下图:
从执行顺序上来说:
首先是.service层:测试和JSP前台调用都只调用service层的方法,service里的代理给外界提供了统一的操作方法,而方法的具体实现是靠其余两个底层支撑的。(之所以分层,是因为以后需要存入数据库的对象不只只有上边的Student一个对象,也不只有oracle一种数据库,这样分层易于程序延展)
第二是DAO层:DAO层封装了 “如何把一个对象存入数据库” 的办法。比如如何连接上数据路(比如oracle,DBConnection.java),如何把已知的Student对象存入刚刚已连接的数据库(前一个比如提到的,StudentDAOImp.java),StudentDAO的抽象方法(IStudentDAO.java) 和工厂类等
最后是model层:就是个VO,告诉上层对应请求、要存储表中的Student具体是个什么。
这是测试程序的一部分,能看出是要把Student类的一个实例,传给工厂类产出的实例的doCreate()方法:
DROP TABLE student; CREATE TABLE student ( studentid NUMBER(9), name VARCHAR2(50) NOT NULL, age NUMBER(9) NOT NULL, CONSTRAINT student_studentid_pk PRIMARY KEY(studentid) );
下一步是根据这个小例子,把框架整合进来,下回分解。