Hibernate 的原理与配置

2016-01-29 12:53 13 1 收藏

Hibernate 的原理与配置,Hibernate 的原理与配置

【 tulaoshi.com - Java 】

  也许你听说过Hibernate的大名,但可能一直不了解它,也许你一直渴望使用它进行开发,那么本文正是你所需要的!在本文中,我向大家重点介绍Hibernate的核心API调用库,并讲解一下它的基本配置。

  看完本文后,我相信你对什么是ORM(对像/关系映射)以及它的优点会有一个深刻的认识,我们先通过一个简单的例子开始来展现它的威力。

  正如一些传统的经典计算机文章大都会通过一个“hello,world”的例子开始讲解一样,我们也不例外,我们也将从一个相对简单的例子来阐述Hibernate的开发方法,但如果要真正阐述Hibernate的一些重要思想,仅仅靠在屏幕上打印一些字符是远远不够的,在我们的示例程序中,我们将创建一些对象,并将其保存在数据库中,然后对它们进行更新和查询。

  阅读导航

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/java/)

  “Hello World”“Hello world”示例程序让您对Hibernate有一个简单的认识。
  理解Hibernate的架构介绍Hibernate接口的主要功能。
  核心接口Hibernate有5个核心接口,通过这几个接口开发人员可以存储和获得持久对象,并且能够进行事务控制
  一个重要的术语:TypeType是Hibernate发明者发明的一个术语,它在整个构架中是一个非常基础、有着强大功能的元素,一个Type对象能将一个Java类型映射到数据库中一个表的字段中去。
  策略接口Hibernate与某些其它开源软件不同的还有一点――高度的可扩展性,这通过它的内置策略机制来实现。
  基础配置Hibernate可以配置成可在任何Java环境中运行,一般说来,它通常被用在2-3层的C/S模式的项目中,并被部署在服务端。
  创建一个SessionFactory对象要创建一个SessionFactory对象,必须在Hibernate初始化时创建一个Configuration类的实例,并将已写好的映射文件交由它处理。

  “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;
  }
  }

  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();

来源:http://www.tulaoshi.com/n/20160129/1487984.html

延伸阅读
散射光的原理与应用 向拍摄者直射过来的大阳光被云层遮住了,但我们仍然可以看到向四周发射的光线。实际上,我们看到的是向四周发射的光所产生的散射光。这种散射光产生了漂亮的光芒四射视觉效果。 拍摄者巧妙地用树叶挡住了相当部分的直射向镜头的太阳光,而射向四周的阳光在散射的作用下营造出一种特别的气氛,是不是作者有...
标签: 家具
家具的配置与选择,首先应考虑房间的使用与性质。例如住宅中的卧室必然应该设置床,如果说这间卧室要兼做工作室,则还应放置工作台和书架。在确定了房间的性质、用途后,再从家具的尺度、风格、色彩、质地、造型等方面加以考虑,进行选择配置。 选择家具时应该着眼于整体环境的需要,把家具当作整体环境的一部分。具体可从以下几个方面考虑: ...
Java的中文问题历史悠久,连绵不绝,至今也没有完全解决,但是上有政策下有对策,我们总是有办法搞定它的。跟Java相关的中文问题主要有两类,一类是编程的问题,涉及到I/O,内码转换等。第二类是Java运行环境的配置,涉及字体,属性配置等。我刚刚用了一天的时间解决这些问题,觉得很有必要给自己写个备忘录之类的。 我看还是从问题入...
标签: 生活常识
阳台种植花卉的选择与配置 很多居民都有养花绿化居室的习惯。首先根据自家环境和爱好进行选择,城镇居民大部分居住楼房,养花阳台自然是最佳位置,因此,阳台养花和选择品种是一个关键。阳台气候条件与地面、花房、庭院区别很大,楼房阳台多向阳,东西南阳台较热,有温度高、温度小、干热风大的特点;北面东面,光照少、凉爽,故阳台花卉...
标签: Java JAVA基础
一 安装 1 首先要安装的是JDK。以Windows NT环境为例,JSDK可下载的版本是可安装的压缩文件,可提供完整的Java发展环境,让你能建立利用标准API为核心的Java解决之道。运行下载得到的jdk1_2_2-win.exe,按照提示完成安装即可。不过你的服务器要应用到JSP的唯一一件事是Java编译器。要让服务器知道编译器的位置。 2 修改系统环境参数, JDK可...