数据持久化

  持久化:将程序中的数据在瞬间状态下和持久状态间转换的机制(JDBC)

  主要持久化操作:保存、删除、读取、和查找。

  采用面向接口编程,可以降低代码间的耦合性,提高代码的可扩展性和可维护性。

DAO模式

  1. DAO ( DataAccessObjects ,数据存取对象) :

位于业务逻辑和持久化数据之间实现对持久化数据的访问

  2.组成部分:

DAO接口:把对数据库的所有的操作定义成抽象方法,可以提供多种实现。

DAO实现类:针对不同数据库给出DAO接口定义方法的具体实现。

实体类:用于存放于传输对象数据。

数据库连接和关闭工具类:避免数据库连接和关闭代码的重复使用,方便修改

  3.DAO模式提供了访问关系型数据库系统所需操作的接口,将数据访问和业务逻辑分 离,对上层提供面向对象的数据访问接口

  4.优势:① 隔离了数据访问代码和业务逻辑代码;② 隔离了不同数据库实现。

分层开发

    优势:

  1. 每一层专注于自己功能的实现,便于提高质量
  2. 便于分工协作,提高效率
  3. 便于代码复用
  4. 便于程序扩展

 特点:

  1. 每一层都有自己的职责
  2. 上层不关心下层的实现细节,上层通过下层提供的对外接口来实现其功能
  3. 上层调用下层的功能,下层不能调用上层的功能;下层为上层提供服务,而不使用上层提供的功能

 原则:

  ①  封装性原则:每个层次向外提供公开的统一接口,隐藏内部的功能实现细节,其他层次不能也没有必要了解其内部细节。

  ②  顺序访问原则:下一层为上一层提供服务,而不使用上一层提供的服务

    (业务逻辑层  ---->     数据访问层       业务逻辑层  <---- 数据访问层)

实体类

        特征:1.属性一般用private修饰(getter/setter方法—---用public修饰);

2.最好实现java.io.Serializable接口支持序列化机制,可以将该对象转换成字节序列而保存在磁盘上或在网络上传输;

3.对实体类提供无参构造方法,根据业务需要提供相应的有参构造方法;

4.定义属性serialVersionUID,解决不同版本之间的序列化问题

(private static final long serialVersionUID=2070056025956126480L)

方法调用时:

表示层——>业务逻辑层——>数据访问层

写代码时:

数据访问层——>业务逻辑层——>表示层

实体类(表在面向对象中的实现):

        表名——类名、字段——属性     编写一个实体类,将一个表用类实现;包名——entity或models存放实体类

测试类、网页、界面UI(表示层)——main方法所在的类

业务逻辑层(桥梁作用):

表示层的数据,传递到数据访问层

BaseDAO类:

        对表进行操作的类(包存放)——数据访问层    对数据库的访问和操作(辅助类)

数据访问层 (DAO)的更多相关文章

  1. view是视图层+action是控制层+service是业务层+dao是数据访问层。

  2. servlet层调用biz业务层出现浏览器 500错误,解决方法 dao数据访问层 数据库Util工具类都可能出错 通过新建一个测试类复制代码逐步测试查找出最终出错原因

    package com.swift.jztk.servlet; import java.io.IOException; import javax.servlet.ServletException; i ...

  3. 随机获得MySQL数据库中100条数据方法 驾照题库项目 MVC架构 biz业务层的实现类 根据考试类型rand或order通过dao数据访问层接口得到数据库中100或全部数据

    package com.swift.jztk.biz; import java.util.Collections; import java.util.Comparator; import java.u ...

  4. 使用JDBC构建简单的数据访问层

    本教程的目的是使用Java编写的分离的层去访问数据库中的表,这一层通常称为数据访问层(DAL) 使用DAL的最大好处是通过直接使用一些类似insert()和find()的方法简化了数据库的访问操作,而 ...

  5. [置顶] 数据持久层(DAO)常用功能–通用API的实现

    在Web开发中,一般都分3层. Controller/Action 控制层, Service/Business 服务层/业务逻辑层, Dao 数据访问层/数据持久层. 在学习和工作的实践过程中,我发现 ...

  6. 数据持久层(DAO)通用API的实现

    在Web开发中,一般都分3层.Controller/Action 控制层,Service/Business 服务层/业务逻辑层,Dao 数据访问层/数据持久层. 在学习和工作的实践过程中,我发现很多功 ...

  7. ClownFish:比手写代码还快的通用数据访问层

    http://www.cnblogs.com/fish-li/archive/2012/07/17/ClownFish.html 阅读目录 开始 ClownFish是什么? 比手写代码还快的执行速度 ...

  8. Yii的学习(2)--数据访问对象 (DAO)

    摘自Yii官网:http://www.yiiframework.com/doc/guide/1.1/zh_cn/database.dao Yii提供了强大的数据库编程支持.Yii数据访问对象(DAO) ...

  9. 使用Ninject+Moq在单元测试中抽象数据访问层

    一.测试方法的业务逻辑时,通常都需要从数据库读取测试数据,但是每次初始化数据库数据都很麻烦,也会影响到其它业务对数据的访问,怎样抽象数据访问层呢?就是用Moq去模拟数据访问的逻辑     二.步骤如下 ...

随机推荐

  1. NPOI.XWPF生成WORD,设置Table单元格的背景色

    tr.GetCell().SetColor("#fbd4b4");

  2. P2645 斯诺克 题解

    P2645 斯诺克 题目背景 镇海中学开设了很多校本选修课程,有体育类.音乐类.美术类.无线电测向.航空航海航天模型制作等,力争使每位学生高中毕业后,能学到一门拿得出手的兴趣爱好,为将来的终身发展打下 ...

  3. JDBC_事务概念_ACID特点_隔离级别_提交commit_回滚rollback

    事务的概念 一组要么同时执行成功,要么同时执行失败的SQL语句,是数据库操作的一个执行单元! 事务开始于: 连接到数据库上,并执行一条DML语句(insert,update或delete),前一个事务 ...

  4. Mac的Parallels在启动Win的时候让它独立全屏窗口

    这里备忘一下,由于经常需要***,Win方法比较多少,所以使用Parallels在Win下***还是很有必要的,为了使用使用方便,一般让Parallels启动系统之后自动生成一个独立的全窗口,方便来回 ...

  5. js 原生JS实现轮播图

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. 【算法笔记】B1001 害死人不偿命的(3n+1)猜想

    1001 害死人不偿命的(3n+1)猜想 (15 分)卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把 (3n+1) 砍掉一半.这样一直反复砍 ...

  7. ASP.NET 设计模式分为三种类型

    设计模式分为三种类型,共23类.  一.创建型模式:单例模式.抽象工厂模式.建造者模式.工厂模式.原型模式.      二.结构型模式:适配器模式.桥接模式.装饰模式.组合模式.外观模式.享元模式.代 ...

  8. Luogu P2243 电路维修 双端队列BFS

    当转移的代价是0和一个分明不同的权值时,可以用双端队列BFS去跑(你跑最短路也没问题..QWQ) 而对于这道题,边旋转代价是1,不旋转代价是0:可以直接建图最短路,也可以跑BFS 这个题建图很有意思: ...

  9. Pollard_Rho 整数分解法【学习笔记】

    引文:如果要对比较大的整数分解,显然之前所学的筛选法和是试除法都将不再适用.所以我们需要学习速度更快的Pollard_Rho算法. 算法原理: 生成两个整数a和b,计算p=gcd(a-b, n),知道 ...

  10. 【字符串】【hash】【倍增】洛谷 P3502 [POI2010]CHO-Hamsters 题解

        这是一道字符串建模+图论的问题. 题目描述 Byteasar breeds hamsters. Each hamster has a unique name, consisting of lo ...