`
廖世勇
  • 浏览: 100953 次
  • 性别: Icon_minigender_1
  • 来自: 湖南郴州
社区版块
存档分类
最新评论
文章列表
第16章 条件查询(Criteria Queries) 具有一个直观的、可扩展的条件查询API是Hibernate的特色。 16.1.创建一个Criteria 实例 org.hibernate.Criteria接口表示特定持久类的一个查询。Session是 Criteria实例的工厂。 Criteria crit = sess.createCriteria(Cat.class); crit.setMaxResults(50); List cats = crit.list(); 16.2.限制结果集内容 一个单独的查询条件是org.hibernate.criterio ...
第15章HQL: Hibernate查询语言 Hibernate配备了一种非常强大的查询语言,这种语言看上去很像SQL。但是不要被语法结构 上的相似所迷惑,HQL是非常有意识的被设计为完全面向对象的查询,它可以理解如继承、多态和关联之类的概念。 ...
第14章批量处理(Batch processing) 使用Hibernate将 100 000 条记录插入到数据库的一个很自然的做法可能是这样的 Session session = sessionFactory.openSession(); Transaction tx = session.beginTransaction(); for ( int i=0; i<100000; i++ ) { Customer customer = newCustomer(.....); session.save(customer); } tx.commit(); session ...
第13章 拦截器与事件(Interceptors and events) 应用程序能够响应Hibernate内部产生的特定事件是非常有用的。这样就允许实现某些通用的功能 以及允许对Hibernate功能进行扩展。 13.1.拦截器(Interceptors) Interceptor接口提供了从会话(session)回调(callback)应用程序(application)的机制, 这种回调机制可以允许应用程序在持久化对象被保存、更新、删除或是加载之前,检查并(或)修改其属性。一个可能的用途,就是用来跟踪审核(auditing)信息。例如:下面的这个拦截器,会在一个实现了 Audit ...
第12章事务和并发 Hibernate的事务和并发控制很容易掌握。Hibernate直接使用JDBC连接和JTA资源,不添加任何附加锁定行为。我们强烈推荐你花点时间了解JDBC编程,ANSI SQL查询语言和你使用的数据库系统的事务隔离规范。Hibernate只添加自动版本管理,而不会锁 定内存中的对象,也不会改变数据库事务的隔离级别。基本上,使用 Hibernate就好像直接使用JDBC(或者JTA/CMT)来访问你的数据库资源。 除了自动版本管理,针对行级悲观锁定,Hibernate也提供了辅助的API,它使用了 SELECT FOR UPDATE的SQL语法。本章后面会讨论这个AP ...
第11章与对象共事 Hibernate是完整的对象/关系映射解决方案,它提供了对象状态管理(state management)的功能,使开发者不再需要理会底层数据库系统的细节。也就是说,相对于常见的JDBC/SQL持久层方案中需要管理SQL语句,Hibernate采用了更自然的面向对象的视角来持久化Java应用中的数据。 换句话说,使用Hibernate的开发者应该总是关注对象的状态(state),不必考虑SQL语句的执行。 这部分细节已经由Hibernate掌管妥当,只有开发者在进行系统性能调优的时候才需要进行了解。 11.1.Hibernate对象状态(object states) ...
第10章继承映射(Inheritance Mappings) 10.1.三种策略 Hibernate支持三种基本的继承映射策略: ·每个类分层结构一张表(table per class hierarchy) ·每个子类一张表(table per subclass) ·每个具体类一张表(table per concrete class) 此外,Hibernate还支持第四种稍有不同的多态映射策略: ·隐式多态(implicitpolymorphism) 对于同一个继承层次内的不同分支,可以采用不同的映射策略,然后用隐式多态来完成跨越整个层次的多态。但是在同一个< ...
第9章组件(Component)映射 Component这个概念在Hibernate中几处不同的地方为了不同的目的被重复使用. 9.1.依赖对象(Dependent objects) Component是一个被包含的对象,它作为值类型被持久化,而非一个被引用的实体。“component(组件)”这一术语指的是面向对象的合成概念(而并不是系统构架层次上的组件的概念)举个例子, 你可以对人(Person)如以下这样来建模: public class Person { private java.util.Date birthday; private Name name; ...
第8章关联关系映射 8.1.介绍 关联关系映射通常情况是最难配置正确的。在这个部分中,我们从单向关系映射开始,然后考虑双向关系映射,由浅至深讲述一遍典型的案例。在所有的例子中,我们都使用Person和Address。 我们根据映射关系是否涉及连接表以及多样性来划分关联类型。 在传统的数据建模中,允许为Null值的外键被认为是一种不好的实践,因此我们所有的例子中都使用不允许为Null的外键。这并不是Hibernate的要求,即使你删除掉不允许为Null的约束,Hibernate映射一样可以工作的很好。 8.2.单向关联(Unidirectional associations) ...
第7章集合类(Collections)映射 7.1.持久化集合类(Persistent collections) (译者注:在阅读本章的时候,以后整个手册的阅读过程中,我们都会面临一个名词方面的问题,那就是“集合”。"Collections"和"Set"在中文里对应 ...
第6章对象/关系数据库映射基础(BasicO/R Mapping) 6.1.映射定义(Mapping declaration) 对象和关系数据库之间的映射通常是用一个XML文档(XML document)来定义的。这个映射文档被设计为易读的,并且可以手工修改。映射语言是以Java为中心,这意味着映射文档是按照持久化类的定义来创建的, 而非表的定义。 请注意,虽然很多Hibernate用户选择手写XML映射文档,但也有一些工具可以用来生成映射文档,包括XDoclet,Middlegen和AndroMDA。 让我们从一个映射的例子开始: <?xml version=& ...
ARM RealView 2.2 (微电子设计) 下载地址:http://www.9iv.com/down/soft/274.htm?eid=217990http://lib.verycd.com/2005/11/07/0000073497.html 全名:ARM RealView Developer Suite 2.2 最新完整版! 强大的微电子设计、ARM集成开发工具、嵌入式系统设计 ARM,既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。ARM RealView DEVELOPER系列包括RealView开发包,它含有先 ...
在应用程序中,用来实现业务问题实体的(如,在电子商务应用程序中的Customer和Order) 类就是持久化类。不能认为所有的持久化类的实例都是持久的状态——一个实例的状态也可能 是瞬时的或脱管的。 如果这些持久化类遵循一些简单的规则,Hibernate能够工作得最好,这些规则被称作, 简单传统Java对象(POJO:Plain Old Java Object)编程模型。但是这些规则没有一个是必需的。 实际上,Hibernate3对于你的持久化类几乎不做任何设想。你可以用其他的方法来表达领域模型: 比如,使用Map实例的树型结构。 5.1.一个简单的POJO例子 大多数Java ...
由于Hibernate是为了能在各种不同环境下工作而设计的, 因此存在着大量的配置参数. 幸运的是多数配置参数都 有比较直观的默认值, 并有随Hibernate一同分发的配置样例hibernate.properties (位于etc/)来展示各种配置选项. 所需做的仅仅是将这个样例文件复制到类路径 (classpath)下做一些自定义的修改. 4.1.可编程的配置方式 一个org.hibernate.cfg.Configuration实例代表了一个应用程序中Java类型 到SQL数据库映射的完整集合. Configuration被用来构建一个(不可变的 (immutable)) ...
3.1.概况(Overview) 一个非常简要的Hibernate体系结构的概要图: 从这个图可以看出,Hibernater使用数据库和配置信息来为应用程序提供持久化服务(以及持久的对象)。 我们来更详细地看一下Hibernate运行时体系结构。由于Hiber ...
Global site tag (gtag.js) - Google Analytics