没有合适的资源?快使用搜索试试~ 我知道了~
Hibernate原理与配置快速入门
需积分: 0 2 下载量 104 浏览量
2012-10-11
09:53:12
上传
评论
收藏 286KB PDF 举报
温馨提示
试读
16页
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库
资源详情
资源评论
资源推荐
Hibernate
原理与配置快速入门
在本文中,我向大家重点介绍 Hibernate 的核心 API 调用库,并讲解一下它的基本配置。
也许你听说过 Hibernate 的大名,但可能一直不了解它,也许你一直渴望使用它进行开发,那
么本文正是你所需要的!在本文中,我向大家重点介绍 Hibernate 的核心 API 调用库,并讲解一下
它的基本配置。
看完本文后,我相信你对什么是 ORM(对像/关系映射)以及它的优点会有一个深刻的认识,
我们先通过一个简单的例子开始来展现它的威力。
正如一些传统的经典计算机文章大都会通过一个“hello,world”的例子开始讲解一样,我们也
不例外,我们也将从一个相对简单的例子来阐述 Hibernate的开发方法,但如果要真正阐述 Hibernate
的一些重要思想,仅仅靠在屏幕上打印一些字符是远远不够的,在我们的示例程序中,我们将创建
一些对象,并将其保存在数据库中,然后对它们进行更新和查询。
阅读导航
“Hello World”
“Hello world”示 例 程序让您对 Hibernate 有一个简单的认
识
理解 Hibernate 的架构 介绍 Hibernate 接口的主要功能。
核心接口
Hibernate 有 5 个核心接口,通过这几个接口开发人员可
以存储和获得持久对象,并且能够进行事务控制
一个重要的术语:Type
Type 是 Hibernate 发明者发明的一个术语,它在整个构架
中是一个非常基础、有着强大功能的元素,一个 Type 对
象能将一个 Java 类型映射到数据库中一个表的字段中去。
策略接口
Hibernate 与某些其它开源软件不同的还有一点――高度
的可扩展性,这通过它的内置策略机制来实现。
基础配置
Hibernate
可以配置成可在任何
Java
环境中运行,一 般 说
来,它通常被用在 2-3 层的 C/S 模式的项目中,并被部
署在服务端。
创建一个 SessionFactory 对
象
要创建一个 SessionFactory 对象,必须在 Hibernate 初始
化时创建一个 Configuration 类的实例,并将已写好的映
射文件交由它处理。
Hibernate
原理与配置快速入门
“Hello World”
Hibernate 应用程序定义了一些持久类,并 且 定义了这些类与数据库表格的映射关系。在我们这
个“Hello world”示例程序中包含了一个类和一个映射文件。让我们看看这个简单的持久类包含有
一些什么?映射文件是怎样定义的?另外,我们该怎样用
Hibernate
来操作这个持久类。
我们这个简单示例程序的目的是将一些持久类存储在数据库中,然后从数据库取出来,并将其
信息正文显示给用户。其中 Message 正是一个简单的持久类:,它包含我们要显示的信息,其源代
码如下:
列表 1 Message.Java 一个简单的持久类
package hello;
public class Message {
private Long id;
private String text;
private Message nextMessage;
private Message() {}
public Message(String text) {
this.text = text;
}
public Long getId() {
return id;
}
private void setId(Long id) {
this.id = id;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public Message getNextMessage() {
return nextMessage;
}
public void setNextMessage(Message nextMessage) {
this.nextMessage = nextMessage;
}
}
Hibernate
原理与配置快速入门
Message 类有三个属性:Message 的 id 、消息正文、以及一个指向下一条消息的指针。其中
id 属性让我们的应用程序能够唯一的识别这条消息,通常它等同于数据库中的主键,如果多个
Message 类的实例对象拥有相同的 id,那它们代表数据库某个表的同一个记录。在这里 我们选择了
长整型作为我们的
id
值,但 这 不是必需的。
Hibernate
允许我们使用任意的类型来作为对象的
id
值,
在后面我们会对此作详细描述。
你可能注意到 Message 类的代码类似于 JavaBean 的代码风格,并 且 它有一个没有参数的构造
函数,在我们以后的代码中我将继续使用这种风格来编写持久类的代码。
Hibernate 会自动管理 Message 类的实例,并通过内部机制使其持久化,但实际上 Message
对象并没有实现任何关于 Hibernate 的类或接口,因此我们也可以将它作为一个普通的 Java 类来使
用:
Message message = new Message("Hello World");
System.out.println( message.getText() );
以上这段代码正是我们所期望的结果:它打印“hello world”到屏幕上。但这并不是我们的最
终目标;实际上 Hibernate 与诸如 EJB 容器这样的环境在持久层实现的方式上有很大的不同。我们
的持久类(Message 类)可以用在与容器无关的环境中,不像 EJB 必须要有 EJB 容器才能执行。为了
能更清楚地表现这点,以下代码将我们的一个新消息保存到数据库中去:
Session session = getSessionFactory().openSession();
Transaction tx = session.beginTransaction();
Message message = new Message("Hello World");
session.save(message);
tx.commit();
session.close();
以上这段代码调用了 Hibernate 的 Session 和 Transaction 接口(关于 getSessionFactory()方法我
们将会马上提到)。它相当于我们执行了以下 SQL 语句:
insert into MESSAGES (MESSAGE_ID, MESSAGE_TEXT, NEXT_MESSAGE_ID)
values (1, 'Hello World', null)
剩余15页未读,继续阅读
Fans一下下
- 粉丝: 24
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0