`
caizhongda
  • 浏览: 188926 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Hibernate 使用 重要 笔记

阅读更多
Hibernate 使用 重要 笔记

Hibernate API介绍:
Configuration类

SessionFactory接口: 最好只创建一个factory(除非是多数据源)

Transaction接口

Query、Criteria接口:执行数据库的查询,充当Hibernate查询器

Hibernate常用的标识生成器
引用
assigned

hilo

increment

identity

sequence

native


* MySQL和SQL Server优先考虑 identity
* Oracle优先考虑用 sequence
** 如果想提高应用的可以移植性,开发跨平台的应用则选用native生成器

三种状态的转换:
临时对象,持久对象与游离对象



图一:




关于Session的重要方法:
beginTransaction();

close();

connection() : ****这个方法直接取得JDBC的连接,绕开Hibernate直接访问数据库,对增、删、一般会有比Hibernate效率高些。

delecte();

get(  Class entityClass,Serializable id); 如果没有对应的实例会返回null

load(  Class entityClass,Serializable id);//如果没有对应的实例会抛异常

save(Object entity);

update(Object entity)

saveOrUpdate(Object entity)

isInitialized()和initialize() ;///可以比较好的解决延迟加载的问题


QBC查询方式:(Query By Criteria )
* Restrictions类中的常用方法来设置查询条件
* Order类 Order.asc 升序、Order.desc降序
* Projections类 对结果进行统计和分组(Projections.avg,..)
//1
  Criteria criteria  = session.createCriteria(User.class);
  List list = criteria.list();

//2 分页
  criteria.add(Restriction.eq("id",new Integer(1)));
  criteria.setMaxResults(10);
  User user = (User) criteria.uniqueResult()//装载单个对象
  
  criteria.addOrder(Order.desc("id");)
  
//3 联合查询
  Criteria cusCriteria = session.createCriteria(Customer.class);//
  Criteria ordCriteria = cusCriteria.createCriteria("orders");//
  ordCriteria.add(Restrictions.gt("money",new Double(1000)));
  ...

//4离线查询  (在只执行查询时才与Session绑定)(一般用于动态构建查询语句)
  //在展现层构造查询语句
  DetachedCriteria dCritera = DetachedCriteria.forClass(Order.class);
  dCritera.add(Restrictions.gt("money",new Double(1000)));
  ....
  serviec.queryOrders(dCritertia);
   
  Session session = ....
  //在业务层
   Critertia criteria = dCritertia.getExecutable(session);
   criteria.list();


  

批量插入:
方式一:设置hibernate.jdbc.batch_size 为 50( 整数 )建议关闭二级缓存

 for(int i=0;i<1000;i++){
  ....
  session.save(customer);
  if(i%50 ==0 ){
     session.flush();//将这批数据与数据库同步
     session.clear();//清空缓存区,释放内存攻下一批使用
  }
 }



方式二: 绕过Hibernate使用JDBC



批量更新
  方式一:配置
<property name="hibernate.query.facotry_class">  
                        org.hibernate.hql.ast.ASTQueryTranslatorFactory
</property>

方式二.;使用JDBC

批量删除:



多数据源的应用:
....

























  • 大小: 4.9 KB
分享到:
评论

相关推荐

    Hibernate,hibernate笔记

    总的来说,Hibernate是Java开发中的重要工具,它通过ORM解决了数据库操作的复杂性,提供了更高级别的抽象。理解和熟练使用Hibernate配置、异常处理、HQL查询以及IDE集成是每个Java开发者必备的技能。通过上述步骤,...

    hibernate个人学习笔记完整版

    事务管理是另一个重要部分,笔记会解释如何使用Hibernate的事务API来确保数据的一致性。同时,缓存机制,如一级缓存(First Level Cache)和二级缓存(Second Level Cache),也将被详细讨论,它们对于提高应用程序...

    《深入浅出Hibernate》读书笔记

    总之,《深入浅出Hibernate》读书笔记涵盖了实体对象生命周期的转换、实体对象的识别机制以及Hibernate的多级缓存策略,这些都是理解并有效使用Hibernate的关键点。通过深入学习这些概念,开发者能够更好地掌握...

    Hibernate学习笔记特别详细

    这篇笔记将深入探讨Hibernate的核心概念和使用方法。 001---Hibernate简介 Hibernate是一个Java库,它允许开发人员在Java对象和关系数据库之间进行映射。ORM框架的目标是消除传统的JDBC代码,通过提供一种抽象层来...

    hibernate第一天笔记

    首先,引入Hibernate所需的库文件至关重要。这包括Hibernate的核心库以及相应的数据库驱动JAR包。这些库文件提供了对ORM操作的支持,使得Java对象能够映射到数据库表。 对象关系映射(ORM)技术是Hibernate的核心...

    hibernate难点重点笔记

    本文将针对Hibernate中的几个重要概念进行详细讲解,包括主键生成策略、get()与load()的区别以及二级缓存的使用。 首先,探讨的是Hibernate中的主键生成策略。在Hibernate中,主键的生成主要有三种方式:uuid、...

    hibernate 超级经典笔记

    笔记首先介绍了ORM的概念,解释了为什么我们需要ORM,以及Hibernate在Java应用中的重要地位。 笔记详细讲解了Hibernate的安装与配置,包括设置环境变量、创建Hibernate配置文件以及连接数据库。这部分内容对于初次...

    hibernate笔记.txt

    综上所述,《hibernate笔记.txt》虽然部分信息难以直接解读,但从标题和描述中我们仍然能够提炼出关于分层架构设计原则的重要知识点,以及基于Hibernate框架在软件开发中所扮演的关键角色和提供的核心功能。...

    邹波老师Hibernate教程学习笔记

    《邹波老师Hibernate教程学习笔记》是针对Java开发者深入理解并掌握ORM框架Hibernate的重要参考资料。这是一份由个人在观看邹波老师的Hibernate视频教程后精心整理的学习笔记,旨在帮助初学者和有一定基础的程序员更...

    Hibernate3.2学习笔记

    最后,优化Hibernate的性能至关重要。开启`show_sql`可以在控制台打印出执行的SQL语句,方便调试。另外,可以使用二级缓存提高数据读取速度,通过调整缓存策略和配置合适的缓存提供商。合理使用批处理和缓存,以及...

    hibernate-学习笔记

    另外,合理使用批处理更新和懒加载也是提升效率的重要手段。 九、 Hibenate与Spring整合 在实际开发中,Hibernate 常与Spring框架结合使用,Spring 提供了声明式事务管理,简化了事务的处理。同时,Spring的DAO支持...

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

    ### 马士兵Hibernate学习笔记知识点总结 #### 一、课程内容概览 - **HelloWorld**:通过简单的示例程序介绍如何启动一个基于Hibernate的Java项目。 - **Hibernate原理模拟**:解释O/R Mapping的概念及其重要性。 -...

    hibernate 3.3学习笔记

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

    hibernate笔记

    Hibernate是Java领域中的一款强大的持久层框架,它实现了对象关系映射(ORM),使得开发者可以使用面向对象的方式来操作数据库。Hibernate简化了数据库操作,通过提供一套API来处理数据的保存、更新、删除和查询,...

    使用Struts + Spring + Hibernate完成分页笔记

    "使用Struts + Spring + Hibernate完成分页笔记"这个主题涵盖了三个关键的Java EE框架:Struts、Spring和Hibernate,它们分别负责表现层、业务逻辑层和数据访问层的管理。下面将详细介绍这三个框架在分页实现中的...

    韩顺平hibernate笔记

    在实体管理方面,笔记可能会涉及持久化操作,如Save、Update、Delete和Load,以及如何使用Criteria、HQL(Hibernate Query Language)和JPQL(Java Persistence Query Language)进行复杂查询。Hibernate的查询语言...

    hibernate框架开发2016版视频 四天学习笔记完整版

    在软件开发领域,特别是Java Web开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它极大地简化了数据库操作,使开发者可以更专注于业务逻辑而不是数据库层面的细节。2016年版本的Hibernate在继承了其...

    Hibernate映射笔记

    ### Hibernate映射笔记详解 #### Hibernate映射文件与配置关系 Hibernate映射是ORM(对象关系映射)框架中的一项关键技术,它允许开发者在数据库表和Java对象之间建立映射关系,从而简化了数据访问层的开发工作。...

Global site tag (gtag.js) - Google Analytics