• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

What is hibernate?

servlet/jsp 搞代码 7年前 (2018-06-18) 173次浏览 已收录 0个评论

主要特性

http://www.gaodaima.com/40528.htmlWhat is Hibernate?

Hibernate是一个object relational mapping的解决方案和一个持久管理方案或持久层。这样的解释可能不能使学习Hibernate的人明白。

 

你或许可以想象一下你的应用程序有很多功能(业务逻辑),你想把数据存到数据库里。当你所有的业务逻辑都用java对象实现时,数据库的表却不是对象。

 

Hibernate提供了一个映射数据库表到Java class的解决办法。它复制数据库数据到object,也支持把object数据存储到数据库。以这种方法就可以使object转换一个或多个数据库表。

 

把数据保存到存储设备就叫做持久化。复制数据库表数据到object和从object把数据存进数据库表就叫做object relational mapping。

 

为什么要使用object relational mapping?

 

更好的系统架构

 

当你把所有的处理和数据库访问都写进了页面,这样你程序就有了很多的缺点。

 

它重用困难。你在许多地方写了重复的代码。使得你在需要更动的时候很难找到所有需要更改的地方。

 

当你把页面分成业务逻辑和持久逻辑等部分的时候,你能比较容易地更在其中一部分而不影响其它部分。

 

减少标准数据库操作编写时间

 

许多数据库查询都是简单的“insert,update,delete”语句。这完全没有必要开发这些单调乏味的语句。Hibernate帮助你节省了这些时间。

 

从数据库加载数据到类类似于以下代码

Query query = session.createQuery("select b from Bug as b");

      for (Iterator iter = query.iterate(); iter.hasNext();) {

        bugs.add((Bug) iter.next());

      }

    return bugs;

 

保存“bug”类类似于

 

session.update(bug);

 

自己难于实现一些高级功能

 

Hibernate提供的缓存方案(Caching solutions),事务处理(transactions)和其它功能都是不容易实现的。完全没理由去开发一些已经存在的东西,你仅仅只需要用Hibernate就可以实现上述功能了。

 

Hibernate是怎么工作的

我的意见是它比实体bean(entity beans)友好许多,hibernate只从一些简单的Java类开始(Pojo=Plain Old Java Objects)。

 

想使用hibernate你要先编写一个简单的java类:

public class Bug

implements Serializable

{

    private int hashValue = 0;

    private java.lang.Integer id;

    private java.lang.String title;

    public Bug()

    {

    }

    public Bug(java.lang.Integer fid)

    {

        this.setId(fid);

    }

    public java.lang.Integer getId() {

        return id;

    }

    public void setId(java.lang.Integer id) {

        this.id = id;

    }

    public java.lang.String getTitle() {

        return title;

    }

    public void setTitle(java.lang.String title) {

        this.title = title;

    }

………….

 

然后创建一个映射文件。映射文件描述Hibernate如何将类的字段映射到数据库字段。

<hibernate-mapping package="de.laliluna.fehlerbehebung">

<class name="Bug" table="bug">

<id name="id" column="fid" type="java.lang.Integer">

<generator class="sequence">

<param name="sequence">public.bug_fid_seq</param>

</generator>

</id>

<property name="title" column="ftitle" type="java.lang.String" />

</class>

</hibernate-mapping>

 

现在就可以使用hibernate类了。

例如新建一个数据库实体:

try {

    Bug bug = new Bug();

    bug.setTitle("Title");

    bug.setTuserFk(tuser);

    Transaction tx = session.beginTransaction();

    session.save(bug);

    tx.commit();

} catch (HibernateException e) {

    e.printStackTrace();

}

 

需要创建的描述文件可以用一些工具自动生成,例如MyEclipse。MyEclipse提供了创建类和直接从数据库表创建描述文件的功能。

 

Hibernate包括了以下工具:

l         从描述文件生成Java类

l         从现有数据表生成描述文件

l         从描述文件生成数据库表

 

 

欢迎大家阅读《What is hibernate?》,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:What is hibernate?

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址