李兴华JavaDao设计模式 - 图文

2020-04-14 02:11

4.1、关于设计分层的初步概念

在软件开发过程之中一定要存在有一个程序的层次概念,每一个程序层次都要完成某些具体的操作,而在一般情况下,分层的原则:不超过三层的原则,而常见的分层模式如下。

以上只是给出了一些层次的基本描述名称,但是严格来讲,每一层还会有更多的划分,如果是一个更加严格的划分,有可能划分成如下的形式。

对于业务层如果是一些简单的程序开发,以上的形式已经够使用了,但是很多时候还会遇见一些更为复杂的应用,那么业务层上还会继续进行划分。

今天的任务不是去研究控制层,也不是研究显示层,而专注于业务层与数据层,而且最为基本的操作是只存在一层业务。一直强调,业务层是整个项目的核心,而你们最大的特点是在业务层上表现。

那么下面就以刁雪冰后面站着听课为例,说明业务层和数据层的关联。

通过以上的分析就可以发现,一个业务层需要调用多个数据层,而数据层所提供的都是数据库的原子性操作(INSERT、UPDATE、DELETE、SELECT)。那么就可以给出概念: · 数据层(数据访问层、持久层),一般会使用“Data Access Object”表示,简称为DAO,在DAO之中提供的是一系列的数据库操作标准(接口); · 业务层(服务层),一般会使用“Service”表示,由于业务层最终也是要给控制层进行调用(今天给客户直接调用)、所以业务层也需要有一个自己的操作标准,而一个业务层就需要调用多个数据层。

4.2、实例分析

现在要求使用emp表(基本字段:empno、ename、job、hiredate、sal、comm)实现如下功能: · 【业务层】实现新雇员的增加操作;

|- 〖数据层〗雇员的编号是由用户自己输入的,所以必须首先确定雇员编号是否存在,需要查询;

|- 〖数据层〗如果雇员编号不存在,则执行增加操作,更新; · 【业务层】实现雇员的修改操作; |- 〖数据层〗直接修改雇员数据; · 【业务层】实现雇员的删除操作; |- 〖数据层〗直接删除雇员数据; · 【业务层】可以根据雇员编号查询出雇员的完整信息; |- 〖数据层〗直接根据编号做限定查询; · 【业务层】可以显示全部雇员记录; |- 〖数据层〗查询雇员表的全部数据 · 【业务层】可以分页显示全部雇员记录,或者可以使用模糊查询进行关键字匹配,在返回全部记录的同时还需要返回本次查询的总数据量;

|- 〖数据层〗使用LIKE模糊查询查询满足条件的数据信息; |- 〖数据层〗使用COUNT()函数统计满足条件的数据量。

通过以上的分析就可以清楚的发现,一个业务层还是调用了多个数据层,所以在日后用户所提出的全部要求的细分,基本上都是业务层分析,而只有确定了业务之后才可以确定

出数据层。

4.3、代码的准备

首先需要打开Oracle的系统服务,而后建立一个新的项目 —— DAOProject,同时在项目之中配置好所需要的数据库驱动程序。

系统的开发之中需要有包的规范,现在假设父包名称为:cn.mldn.oracle。 4.3.1、数据库连接类:DatabaseConnection

在整个JDBC操作过程之中,数据库只有打开后才可以进行一系列的操作,而后数据库的连接又必须关闭。那么为了方便控制,可以直接将数据库的打开和关闭操作封装在一个类之中。

数据库的连接类保存包为“cn.mldn.oracle.dbc”,而且此数据库的连接只针对于Oracle定义。

范例:定义DatabaseConnection.java类 package cn.mldn.oracle.dbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DatabaseConnection { private static final String DBDRIVER = \ private static final String DBURL = \ private static final String DBUSER = \ private static final String PASSWORD = \ private Connection conn ; // 准备出一个数据库连接对象 public DatabaseConnection() { try { Class.forName(DBDRIVER) ; this.conn = DriverManager.getConnection(DBURL, DBUSER, PASSWORD) ; } catch (Exception e) { e.printStackTrace(); } } public Connection getConnection() { return this.conn ; } public void close() { if (this.conn != null) { try { this.conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } 严格来讲以上的写法只是一个简便写法,因为日后是为了向框架开发靠拢,所有一些地方就需要做一些修改,而最早的时候,对于DAO设计模式的主要功能是为了解决掉数据库的可移植操作问题。

4.3.2、开发简单Java类

简单Java类指的就是类的结构比较单一,主要是由属性、setter/getter方法所组成,简单Java类的主要功能是作为一种数据的载体进行存放,而日后对于简单Java类也会出现如下的名称:POJO(简单Java类)、VO(值对象)、TO(DTO,数据传输对象,主要用于分布式)、PO(持久化对象)。可是对于简单Java类的组成结构在开发之中也有了明确要求: · 简单Java类的最主要的设计思想来源于数据表,所以一定要和数据表的结构映射上; · 简单Java类的名称要与数据表的名称保持一致,注意大小写,例如:member_info表,类:MemberInfo; · 为了方便程序扩展,所有的简单Java类必须实现java.io.Serializable接口; · 类之中的属性必须使用private封装,封装后的属性一定要编写setter、getter方法; · 类之中一定要提供有无参构造方法; · 类之中不允许使用基本数据类型,所有的基本类型要全部替换为包装类; · 类之中不允许出现任何的输出语句,所有的输出必须交给被调用处执行; · 类可以有选择性的覆写Object类的:equals()、hashCode()、toString()。 简单Java类要求保存在cn.mldn.oracle.vo包中。


李兴华JavaDao设计模式 - 图文.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:[精品文档]资料员实习报告3000字[1]-范文word版(4页)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: