`
keemoving
  • 浏览: 15990 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

我的Hibernate学习笔记-之一

    博客分类:
  • SSH
阅读更多

DAO模式的优缺点

  • 优点:实现业务逻辑与数据访问的解耦,符合模块化编程的思想,符合面向对象的编程思想。可以快速的定位错误,维护成本低。
  • 缺点:开发成本高。

DAO其它优点

数据源除DB外还有可能是XML文件,文本文件等,不同的数据源存在不同的访问方式,即便是相同的数据源也存在不同的访问方式。DAO模式可以很好的解决这些问题

  • 定义共通的DAO接口(面向接口编程,业务逻辑层声明接口,提高程序的可扩展性)
  • 针对不同的数据源编写不同的实现(Impl)
  • 相同的数据源,针对不同的访问方式编写不同的实现。

DAO组件

 

  • DAO 工厂类
  • DAO 接口 (一个)
  • 实现了 DAO 接口的具体类 (一个或多个)
  • 数据传输对象(有时称为值对象)

 

PO-VO-DTO-POJO-ENTITY

  • po(persistant object):持久化对象。最简单的PO就是对应数据库中某个表中的一条记录的实体类,多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作
  • VO(value object):值对象:用于业务层之间的数据传递,仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要. 同DTO(数据传输对象)相同
  • DTO:数据传输对象
  • POJO(Plain Ordinary Java Object):无格式普通java对象,Hibernate使用,实现Serializable接口

DAO与持久化的关系

DAO一种程序数据访问层(持久化层)的设计思想。或者说DAO模式是持久化层的一个实现

 

映射文件知识点

  • catalog指的数据库名称。name指向实体类,必须是全名包名+类名
  • id只能出现一次,表示主键。
  • column 一定是指的数据库表列名。property,id指的实体类属性名

 

主键生成方式

 

  • native表示自增长,hibernate强烈建议给每个表加一个子增长的列,此列为主键。
  • assigned普通主键,自己赋值。
  • foreign较少使用,此主键又为其他表外键。

Hibernate即时加载与延迟加载

 

  • 即时加载:不管是否使用,马上会加载(从数据库取出放入内存),如session.get()方法。优点:响应速度快,不需要session一直打开状态。缺点:占用资源多。
  • 延迟加载:代码执行后并不马上执行sql语句从数据库获取数据,而是在使用对象时才加载,如session.load()方法。注意,如果使用延迟加载,session要一直处于open状态,否则报异常。优点:占用资源少。缺点:响应速度慢,需要session一直打开状态。

 

对象删除

使用hql可以删除。hql中出现的只用pojo类名与属性名,不能出现表名与字段名。query.executeUpdate();

Hibernate对象的三种状态

 

  • 临时态(未受管理状态):新创建的对象,临时态不一定有。
  • 持久态(受管理状态):对对象进行持久化操作,包括save,update,saveOrUpdate,get,load操作对象会变为持久状态。持久态的数据在事务提交时会自动与数据库对应表记录自动匹配(把程序对象值赋给数据库表值)
  • 游离态(未受管理状态):session.clear(),session.close()对象变为游离态,游离态数据库中有与之对应的数据,游离态一定是由持久态转变的。

以上内容为学习西安云工厂旺旺老师的视频总结。

0
2
分享到:
评论

相关推荐

    Java相关课程系列笔记之十四Hibernate学习笔记

    【Java相关课程系列笔记之十四Hibernate学习笔记】 Hibernate是一个开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序对数据库的操作。本笔记将详细阐述Hibernate的核心概念、使用方法和特性。 一、...

    马士兵hibernate学习笔记

    ### 马士兵Hibernate学习笔记知识点总结 #### 一、HelloWorld示例 - **目的**:通过简单的示例理解Hibernate的基本使用流程。 - **步骤**: - 创建Java项目`hibernate_0100_HelloWorld`。 - 建立库依赖,包括...

    hibernate学习笔记.

    【hibernate学习笔记】 在Java开发中,Hibernate是一个强大的对象关系映射(ORM)框架,它极大地简化了数据库操作。以下是对Hibernate的学习要点的详细解释: 1. **建立第一个Hibernate版本的HelloWorld** - **...

    hibernate学习笔记01

    ### Hibernate学习笔记01 #### 一、Hibernate简介与安装 **Hibernate** 是一款开源的对象关系映射(Object Relational Mapping, ORM)框架,它能够有效地简化Java应用程序与数据库之间的交互,提供了一种更为优雅...

    java学习笔记---从入门到精通之路.pdf

    Java学习笔记---从入门到精通之路.pdf Java是当前最流行的编程语言之一,本笔记旨在帮助初学者从基础到精通J2EE高手之路。本笔记涵盖了Java基础知识、J2EE框架、Web开发、数据库操作、图形游戏开发等方面的知识点,...

    Hibernate学习笔记

    ### Hibernate学习笔记知识点详解 #### 一、在Eclipse中配置Hibernate环境 ##### 1. 配置Classpath Variables 为了在Eclipse中正确配置Hibernate,首先需要设置Classpath Variables来指向Hibernate安装路径下的...

    尚学堂hibernate学习笔记(原版整理)

    【尚学堂Hibernate学习笔记】是一份详尽的学习资料,旨在帮助初学者理解并掌握Hibernate这一流行的Java对象关系映射(ORM)框架。该笔记由作者根据马士兵老师的教程整理而成,其中包含了个人的学习注解,使得内容...

    Hibernate Annotation 学习笔记

    在Java的持久化框架中,Hibernate以其强大的功能和易用性成为开发者首选之一。而Hibernate Annotation则是Hibernate提供的一种基于注解的实体映射方式,它极大地简化了传统XML配置文件的繁琐工作,使得开发过程更加...

    hibernate 学习笔记4

    ### Hibernate 学习笔记4 —— 多对多关系与多态映射 #### 多对多关系 在 Hibernate 中处理多对多关系时,通常采用一种称为“连接表”或“关联表”的方法来实现两个实体之间的多对多关联。这种设计方式较为常见且...

    hibernate学习笔记_北大青鸟课堂笔记全文

    【hibernate学习笔记_北大青鸟课堂笔记全文】 Hibernate是一个强大的对象关系映射(ORM)框架,它为Java开发者提供了便捷的数据持久化方案。在Java应用中,尤其是在企业级开发中,它扮演着至关重要的角色,使得我们...

    hibernate 学习笔记小结

    ### Hibernate学习笔记小结 #### 一、简介与配置 **Hibernate** 是一款开源的对象关系映射(ORM)框架,它允许开发人员将Java对象自动持久化到数据库表中,从而简化了数据访问层的开发工作。在Spring框架中,...

    Java相关课程系列笔记之十四Hibernate学习笔记.doc

    【Java相关课程系列笔记之十四Hibernate学习笔记】 Hibernate是一个开源的对象关系映射(ORM)框架,主要用于简化Java应用程序对数据库的访问。它提供了一种在Java对象和数据库记录之间进行映射的机制,使得开发者...

    Java相关课程系列笔记之九Servlet学习笔记

    Java相关课程系列笔记之一Java学习笔记 Java相关课程系列笔记之四JDBC学习笔记 Java相关课程系列笔记之六HTML学习笔记 Java相关课程系列笔记之七CSS学习笔记 Java相关课程系列笔记之八JavaScript学习笔记 Java相关...

    hibernate 3.3学习笔记

    **hibernate 3.3学习笔记** 在深入探讨Hibernate 3.3的学习笔记之前,首先需要理解Hibernate是什么。Hibernate是一个强大的开源Java持久化框架,它简化了数据库操作,允许开发者将精力集中在业务逻辑上而不是数据库...

    Hibernate 学习笔记&代码.zip

    本学习笔记和代码资源是基于黑马程序员在 B 站上的《Hibernate框架》课程,该课程深入浅出地讲解了 Hibernate 的核心概念和实际应用。 **第一天:Hibernate 概述与环境搭建** 1. **Hibernate 概念**:Hibernate 是...

Global site tag (gtag.js) - Google Analytics