DAO(Database Access Object) 数据库访问接口.
1.使用DAO模式的好处:
1.减少重复代码的编写,提高工作效率.
2.可以实现数据访问层与业务层的分离.
3.修改数据访问层,或者业务层不会影响这个系统的架构.
2.DAO模式必要的4个组件:
1.DAO接口
2.DAO实现
3.pojo(Plain Old Java Object)对象,(最简单最原始的javaBean,没有任何其他方法)
4.一个得到DAO实现的DAO工厂.
ORM(Object Relation Mapping)关系型对象映射.ORM主要是为了解决关系型数据库与面向对象程序设计不必配的一种技术.
常见的ORM框架:Hibernate,Ibatis,TopLink等...
Hibernate:
Hibernate是一个ORM框架,它对JDBC提供了重量级的封装.使程序员可以使用面向对象的思维方式来操作数据库.
Hibernate的核心类和接口:
1.Configuration类:主要是负责管理Hibernate配置文件信息的.
2.SessionFactory接口:用于得到SessionFactory实例.
3.Session接口:操作Hibernate CRUD的核心。
4.Transaction:提供事务管理.
5.Query接口: 查询的基本接口.
Hibernate的操作步骤:
1.通过Configuration类加载Hibernate配置文件.
2.创建SessionFactory.
3.打开Session.
4.开启Transcation.
5.进行CURD操作.
6.提交事务.
7.关闭Session.
Hibernate查询方式:
1.hql方式:hibernate的查询语言,查询语言面向对象,而不面向数据库.
2.qbc方式: 以查询的方式自动创建sql语言,完全的面向对象设计.
3.sql方式: 数据库查询语言.写标准的sql.
比较3种查询方式:
1.hql查询方式最灵活,但是存在动态查询条件的时候会很麻烦.
1.qbc查询方式最适合动态查询.但是不适合统计查询等.
2.sql查询方式也可以达到同样的效果,但是不方便数据库移植.
Hibernate中pojo的3种状态:
1.瞬态(vo) : pojo刚刚初始化,并没有执行任何操作.
2.持久态(po) : pojo进入session的生命周期类,这个时候的数据库已经和bean建立了连接.
3.托管/离线态 : 当session关闭后的pojo就进入了离线状态.
Hibernate主键生成策略:
1.Identity:支持自动型数据库,如Mysql.
2.Sequence:支持序列的数据库,如Oracle.
3.Native:自动判断数据库类型,并自动匹配相应的生成策略.
4.uuid.hex: 自动生成32位无重复的全球统一标识符.
5.foreign : 用于Hibernate的一对一关系中,自动生成主键的一种策略.
Hibernate映射机制:
1.基本映射:自动映射基本类型.
2.集合映射:映射List,Set,Map.
3.关联映射:支持一对一,一对多,多对多直接的映射.
4.继承映射:支持具有继承关系的映射.
5.组件映射:但一个Bean具有另一个Bean的属性时.
6.组合映射:支持组合主键的映射.
cascade与inverse的意思.
1.cascade是级联的意思,也就是说,在一对多或者是多对一关系中,只需保存或者删除
一方对象,就可以同时将多方的对象全部进行保存或者删除.
2.inverse是反转的意思,也就是说,在一对多或者是多对一关系中,本类是否放弃维护.
继承映射的三种策略.
1.每个类对应一张表.这种查询支持多态查询.
2.每个子类对应一张表.这种查询可以减少多表查询的性能消耗.
3.所有类公用一张表.如果类多的话,则会减少性能.
Hibernate的缓存机制:
1.一级缓存: 是Session级别的缓存,是hibernate的内置缓存.如果session被关闭,则缓存也会被清空.
2.二级缓存: 是SessionFactroy级别的缓存,二级缓存可以被所有session共享.
二级缓存适合于:一般很少被修改的数据(用户登录信息),不是很重要但是又有可能出现并发的数据.
不适合: 经常被修改的数据(共享数据,财务数据等).
开启二级缓存:需要指定二级缓存的提供商:比如:EhCacheProvider缓存.
3.查询缓存: 查询缓存与session无关.查询结果只针对list.如果是对象只缓存对象的id.查询缓存也需要手动开启.
Hibernate的延迟加载:
1.延迟加载就是在需要的时候就才发出sql.
2.延迟加载只能在session的作用域中.
3.Hibernate默认就是延迟加载的,如果不需要延迟加载可以在
与ibatis比较:
1.Hibernate是重量级的封装,ibatis是轻量级的封装.
2.Hibernate适合中小型项目,ibatis适合大型项目.
3.Hibernate的性能比ibatis低很多.
分享到:
相关推荐
SSH之Hibernate总结 SSH(Struts、Spring、Hibernate)是Java Web开发中常见的三大框架,而Hibernate作为ORM(对象关系映射)框架,是连接Java应用程序与数据库的关键组件。本总结将围绕Hibernate的核心概念、配置...
【Hibernate总结】 Hibernate是一个强大的Java持久化框架,它封装了JDBC,负责对象持久化,作为应用程序和数据库之间的中间层。映射关系是通过配置文件维护的,这使得Hibernate能够与不同的数据库系统灵活地交互。 ...
本资源包含的"hibernate总结练习源码"提供了对Hibernate ORM框架实际应用的实例,有助于深入理解和掌握其核心概念与功能。 1. **对象关系映射(ORM)**:Hibernate 提供了一种机制,将数据库中的表映射为Java类,表...
《Hibernate总结(三)》 在本篇关于Hibernate的总结中,我们将深入探讨这个流行的Java对象关系映射(ORM)框架的关键概念和技术细节。Hibernate作为一款强大的工具,它极大地简化了Java开发人员处理数据库操作的工作...
标题:hibernate总结 描述:此文档是个人在使用Hibernate框架进行数据持久化操作时的经验积累和技巧分享。文档全面覆盖了Hibernate的各种配置方法、数据映射技术、集合类映射、对象关系映射(ORM)基础以及与J2EE...
### 学习Hibernate总结 #### 一、简介与配置 Hibernate是Java环境下一款优秀的对象关系映射(ORM)框架,它极大地简化了数据访问层(DAL)的编码工作,允许开发人员将主要精力集中在业务逻辑上而不是繁琐的SQL语句...
1. 引入Hibernate所需的JAR文件,例如在Eclipse中创建Hibernate类库。 2. 创建配置文件`hibernate.cfg.xml`,其中包含数据库连接信息、日志格式等。 3. 设计实体类,对应数据库表中的记录,并提供对应的getter和...
**总结项目实战** 在实际项目中,使用 Hibernate 可以简化数据库操作,提高开发效率。常见的应用场景包括用户管理、订单处理、商品分类等。项目实践中要注意合理设计实体关系,避免 N+1 查询问题,利用缓存优化性能...
《Hibernate4总结文档》 Hibernate4作为一款强大的Java对象关系映射框架,简化了数据库操作,使得开发者可以更专注于业务逻辑而不是数据库层面的细节。本文将深入探讨Hibernate4的配置和使用,帮助开发者更好地理解...
总结来说,Hibernate是一个强大的ORM框架,它极大地简化了Java应用的数据库操作,提高了开发效率,并提供了高级特性如缓存、事务管理等。通过深入理解和熟练使用Hibernate,开发者可以构建更高效、更易于维护的...
Hibernate是一个在Java环境中广泛使用的数据持久化工具,它支持对象关系映射(ORM)技术,将Java对象映射到关系型数据库的表中。Hibernate允许开发者通过面向对象的方式来操作数据库,避免了直接使用SQL语句的繁琐...
【Hibernate 简单 PPT 总结】 Hibernate 是一个流行的开源对象关系映射(ORM)框架,它简化了Java应用程序对数据库的操作。通过提供一套API和元数据,Hibernate允许开发者将业务对象直接映射到数据库表,从而避免了...