`
keemoving
  • 浏览: 15504 次
  • 性别: 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
分享到:
评论

相关推荐

    马士兵hibernate学习笔记(原版)

    目录 课程内容 1 HelloWorld 2 Hibernate原理模拟 - 什么是O/R Mapping以及为什么... 4 一级缓存和二级缓存和査询缓存(面试题)(详见hibernate_3000_Hibernate_3KindsOf_Cache) 5 事务并发处理(面试的意义更大)

    JavaEE学习笔记之Hibernate表关系之一对多(inverse详解)

    JavaEE学习笔记之Hibernate表关系之一对多(inverse详解)

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

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

    Java相关课程系列笔记

    Java相关课程系列笔记之八JavaScript学习笔记(建议用WPS打开) Java相关课程系列笔记之二Oracle学习笔记(建议用WPS打开) Java相关课程系列笔记之九Servlet...Java相关课程系列笔记之一Java学习笔记(建议用WPS打开)

    持久层框架ibatis学习笔记

    这篇iBatis 学习笔记是跟着传智播客的视频学习整理的,理解上难免有些错误,请以视频为 根本,有些地方笔记中没有整理到,因为这是我之后看着自己做的工程项目总结的,和视频 不完全一致。请谅解。

    韩顺平java从入门到精通视频教程(全94讲)学习笔记整理(齐全)-共448页.docx

    java内容介绍 java编程可以分成三个方向: 1、java se (j2se)桌面开发 java中的基础中的基础 2、java ee (j2ee)web开发 3、java me (j2me)手机开发 ...1995 sun正式发布java第一个版本,目前最新是jdk7.0

    java常用框架学习笔记

    java 开发,常用框架笔记(hibernate,spring,springmvc等)

    struts2+spring2+hibernate3+ajax课件,老师上课时用的讲义完整版,独加推出

    本课件大部分资料由作者完成,另一部分来源于教科书及网络,经作者整理、加工、完善后发布。 与本课件相关的源代码程序为Struts2Demo、Spring2Demo、Hibernate3Demo、Struts2Spring2Demo、Struts2Spring2Hibernate3...

    Java_HibernateDemoDay1

    ​ 客户关系管理(Customer Relationship Management,缩写 CRM),企业活动面向长期的客户关系,以求提升企业成功的管理方式,其目的之一是要协助企业管理销售循环:新客户的招徕、保留旧客户、提供客户服务及...

    java文集

    ext学习笔记一 小试iBatis RIA(Rich Internet Application)的现状和未来 Java应用中域名解析不过期的解决方法 Java编程那些事儿45—数组使用示例1 一步步熟悉OFBiz 用Java做客户端调用.NET写...

    ant_junitc测试

    为了督促自己学习,同时也是为了及时总结,并与大家分享,近期准备写一个mybatis学习笔记的系列博文。请有兴趣的朋友多多关注、督促并批评指正!不胜感激! 在拙作《纯手工编写第一个Hibernate程序》和《对“纯...

Global site tag (gtag.js) - Google Analytics