- 1
- 0
- 约1.25万字
- 约 30页
- 2016-12-19 发布于贵州
- 举报
hibernate官方入门教程第一部分 - 第一个Hibernate程序
首先我们将创建一个简单的控制台(console-based)hibernate程序。我们使用内置数据库(in-memory database) (HSQL DB),所以我们不必安装任何数据库服务器。
让我们假设我们希望有一个小程序可以保存我们希望关注的事件(Event)和这些事件的信息。 (译者注:在本教程的后面部分,我们将直接使用Event而不是它的中文翻译“事件”,以免混淆。)
我们做的第一件事是建立我们的开发目录,并把所有需要用到的Java库文件放进去。 从Hibernate网站的下载页面下载Hibernate分发版本。 解压缩包并把/lib下面的所有库文件放到我们新的开发目录下面的/lib目录下面。 看起来就像这样:
This is the minimum set of required libraries (note that we also copied hibernate3.jar, the main archive) for Hibernate. See the?README.txt?file in the?lib/?directory of the Hibernate distribution for more information about required and optional third-party libraries. (Actually, Log4j is not required but preferred by many developers.) 这个是Hibernate运行所需要的最小库文件集合(注意我们也拷贝了Hibernate3.jar,这个是最重要的库)。 可以在Hibernate分发版本的lib/目录下查看README.txt,以获取更多关于所需和可选的第三方库文件信息 (事实上,Log4j并不是必须的库文件但是许多开发者都喜欢用它)。
接下来我们创建一个类,用来代表那些我们希望储存在数据库里面的event.
2.2.1. 第一个class
我们的第一个持久化类是 一个简单的JavaBean class,带有一些简单的属性(property)。 让我们来看一下代码:
你可以看到这个class对属性(property)的存取方法(getter and setter method) 使用标准的JavaBean命名约定,同时把内部字段(field)隐藏起来(private visibility)。 这个是个受推荐的设计方式,但并不是必须这样做。 Hibernate也可以直接访问这些字段(field),而使用访问方法(accessor method)的好处是提供了程序重构的时候健壮性(robustness)。
id?属性(property) 为一个Event实例提供标识属性(identifier property)的值- 如果我们希望使用Hibernate的所有特性,那么我们所有的持久性实体类(persistent entity class)(这里也包括一些次要依赖类) 都需要一个标识属性(identifier property)。而事实上,大多数应用程序(特别是web应用程序)都需要识别特定的对象,所以你应该 考虑使用标识属性而不是把它当作一种限制。然而,我们通常不会直接操作一个对象的标识符(identifier), 因此标识符的setter方法应该被声明为私有的(private)。这样当一个对象被保存的时候,只有Hibernate可以为它分配标识符。 你会发现Hibernate可以直接访问被声明为public,private和protected等不同级别访问控制的方法(accessor method)和字段(field)。 所以选择哪种方式来访问属性是完全取决于你,你可以使你的选择与你的程序设计相吻合。
所有的持久类(persistent classes)都要求有无参的构造器(no-argument constructor); 因为Hibernate必须要使用Java反射机制(Reflection)来实例化对象。构造器(constructor)的访问控制可以是私有的(private), 然而当生成运行时代理(runtime proxy)的时候将要求使用至少是package级别的访问控制,这样在没有字节码编入 (bytecode instrumentation)的情况下,从持久化类里获取数据会更有效率一些。
我们把这个Java源代码文件放到我们的开发目录下面一个叫做src的目录里。 这个目录现在应该看起来像这样:
在下一步里,我们将把这个持久类(persisten class)的信息通知Hibernate
H
您可能关注的文档
- G2G聚集电子商务计划书.doc
- g13概率的计算公式.ppt
- G3便携式线接入网关白皮书V1.1.doc
- G3便携式线接入网关白皮书V1.0_20111121.doc
- Gazebo机器人仿真学习探索笔记(四)模型编辑.doc
- GB-202建筑工程最新质量验收表目录.doc
- GB2181-2008机动车安全技术检验项目和方法.doc
- GB500x版JCCAD简介(张志远).ppt
- GB5011-92盘、柜及二次回路结线施工及验收规范.doc
- G3一卡通装调试操作指引.doc
- 安徽省华师联盟2025-2026学年高三上学期1月质量检测生物试卷+答案.doc
- 安徽省华师联盟2025-2026学年高三上学期1月质量检测语文试卷+答案.doc
- 四川省绵阳南山中学实验学校2025-2026学年高三上学期1月月考数学含答案.doc
- 2026届辽宁省大连市高三上学期双基考试物理试卷+答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测化学含答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测生物含答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测英语含答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测政治含答案.doc
- 黑龙江省龙江教育联盟2026年1月高三上学期期末考试化学含答案.doc
- 黑龙江省龙江教育联盟2026年1月高三上学期期末考试生物含答案.doc
原创力文档

文档评论(0)