Hibernate用法十分简单,当我们在Java项目中引入Hibernate框架之后,就能以面向对象的方式来操作关系数据库了。

下载:

登陆Hibernate官网,下载Hibernate压缩包,windows平台下载.zip包,Linux平台下载.tar包。

解压压缩包,可以看到如下目录结构:

documentation:该路径下存放Hibernate的相关文档,包括Hibernate的参考文档和API文档等。

lib:该路径下存放Hibernate 编译和运行所依赖的第三方类库   其中require目录中是必需的jar包。

project:该路径下存放了Hibernate各种相关项目的源代码。

由于Hibernate底层依然是基于JDBC的,因此在应用程序中使用Hibernate执行持久化时,一定少不了对应数据库的JDBC驱动包。

Hibernate的数据库操作:

在所有的ORM框架中都有一个什么重要的媒介:PO(Persistent Object) 持久化对象。Hibernate是低侵入式的设计,完全采用普通的Java Bean对象来作为持久化对象

使用。该持久化对象的类 不需要继承任何的父类,或者实现任何的接口。

Hibernate的XML文件有两类:映射文件和配置文件

映射文件:

文件名:XXXX.hbm.xml      (若干)

映射文件完成持久化类和数据库表,持久化类属性(Field)与数据库表列字段之间的对应关系。

配置文件:

文件名;hibernate.cfg.xml    (一个)

配置文件完成连接哪个数据库,连接数据库的用户名和密码,以及连接数据库时使用的连接池,以及要使用的映射文件。

Hibernate的配置文件默认文件名是hibernate.cfg.xml,当程序调用Configuration对象的configure()方法时,Hibernate会自动加载该文件。

持久化操作代码:

 public class  NewsManager
{
public static void main(String[] args)
{
Configuration conf = new Configuration().configure();
SessionFactory sf = conf.buildSessionFactory();
Session sess = sf.openSession();
Transaction tran = sess.beginTransaction(); News new = new News();
new.setTitle("Hibernate");
new.setContent("First Hibernate Demo"); sess.save(new);
tran.commit();
sess.close();
sf.close(); }
}

持久化类:

 public class  News
{
private Integer id;
private String title;
private String content;
//id属性的setter和getter方法
.....
//title属性的setter和getter方法
......
//content属性的setter和getter方法
...... }

所以完成一次持久化操作,大概有如下步骤:

1.开发持久化类  , 配置映射文件

2.配置配置文件 , 连接数据库

3.在操作类中,获取Configuration类的实例对象

4.获取SessionFactory类的实例对象

5.获取Session类对象

6.获取Transaction类对象 ,打开事务

6.通过Session类对象,以面向对象的方式操作数据库

7.提交事务,关闭Session.

可见,对于持久化对象的操作必须在Session类的实例对象调用相应方法才能同步到数据库。Session类的实例对象,由SessionFactory工厂产生。SessionFactory是

数据库编译后的内存镜像,通常一个应用对应一个SessionFactory类实例对象。SessionFactory类实例对象,由Configuration类实例对象产生,而Configuration类实例对象通过configure()方法加载默认的配置文件hibernate.cfg.xml。

上面就是通过Hibernate进行了一次持久化操作,对比Hibernate和JDBC两种操作数据库的方式,可以发现Hibernate有两大优点:

1.不需要手写SQL语句,以面向对象的方式操作数据库

2.Hibernate把使用JDBC访问数据库过程中产生的大量checked异常包装成了runtime异常,从而不必显示捕捉或者抛出,保证了代码的简洁性。

Hibernate之Hibernate的下载与安装的更多相关文章

  1. [学习笔记] Hibernate 4.3.5 下载与安装

    下载 http://hibernate.org/orm/releases/4.3/ https://sourceforge.net/projects/hibernate/files/hibernate ...

  2. hibernate 各历史版本下载 spring各历史版本下载

    hibernate 各历史版本下载http://sourceforge.net/projects/hibernate/files/ spring各历史版本下载http://www.springsour ...

  3. eclipse安装hibernate插件(在线Marketplace中安装)

    网上很多都是给个网址,然后在eclipse的help中new install soft中安装.每次安装还要去查找最新的地址去安装.为什么不用eclipse的marketplace直接搜索安装呢? 打开 ...

  4. Hibernate 5 发行组件下载

    Hibernate 项目小组提供了一系列发布组合(bundles),这些发布组合发布在 SourceForge 文件发布系统中.这些发布的包有 TGZ 和ZIP 格式. 每一个发布组合包含有 JAR ...

  5. Spring、Hibernate、Struts官方下载地址

    hibernate 官网: http://hibernate.org/ hibernate3 官方下载:http://sourceforge.net/projects/hibernate/files/ ...

  6. Spring 下载与安装以及spring 3.2.9 jar包详解

    一.Spring简介  Spring官网改版后,很多项目的完整zip包下载链接已经隐掉了,虽然Spring旨在引导大家用更“高大上”的maven方式来管理所依赖的jar包,但是完全没想到中国的国情,在 ...

  7. reids(缓存,reids下载,安装 测试)

    什么是缓存:缓存就是数据交换的缓冲区(称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找.由于缓存的运行速度比内存快得多,故缓存的作用 ...

  8. [Hibernate 1]Hibernate的环境搭建

    一.Hibernate是什么 直接使用JDBC操作数据库的步骤很繁琐,JDBC操作的是关系型数据库,而我们用JAVA开发程序,则使用面向对象的思想.Hibernate正是在这两种不同的模型之间建立关联 ...

  9. Hibernate框架 初识 ORM概念 搭建Hibernate环境 Hibernate Api

    ORM概念 在学习 Hibernate 之前,我们先来了解ORM   对象关系映射 O, Object  对象 R,Realtion 关系  (关系型数据库: MySQL, Oracle…) M,Ma ...

随机推荐

  1. jsp学习笔记之:内置对象

    application对象: 设置一个名为name,值为val的应用内共享的数据 <% application.setAttribute("name",val); %> ...

  2. 【BZOJ2442】修建草坪(动态规划,单调队列)

    [BZOJ2442]修建草坪(动态规划,单调队列) 题面 权限题..洛谷 题解 设\(f[i]\)表示前\(i\)个里面选出来的最大值 转移应该比较显然 枚举一个断点的位置,转移一下就好 \(f[i] ...

  3. AC自动机模板3【洛谷3796】

    AC自动机的第三个模板 其实,个人觉得,目前我写的这三个不同的模板完全是可以合并在一起求解的. 只是,在这两个无关联的OJ上,同一个AC自动机都可以完成的问题被拆成了三道题而已. 因此,代码只需要略加 ...

  4. c# winform中的一段代码赏析

    我遇到了一个bug,是客户测试我们的产品,报出来的,而且有异常信息文件,这对于定位问题,很有帮助. 我找到源码看了下,bug还无法重现.于是我随便点点客户端,经过了几次调试,结果报出错误来了.客户端界 ...

  5. imageview无法显示图片:java.lang.RuntimeException: Canvas: trying to draw too large(281520000bytes) bitmap

    图片太大需要压缩. 压缩方法:http://jingyan.baidu.com/article/cdddd41c3ef41153ca00e162.html 如果特别大(几十M),可以先用在线的图片压缩 ...

  6. Angular4---认证---使用HttpClient拦截器,解决循环依赖引用的问题

    在angular4 项目中,每次请求服务端需要添加头部信息AccessToken作为认证的凭据.但如果在每次调用服务端就要写代码添加一个头部信息,会变得很麻烦.可以使用angular4的HttpCli ...

  7. JS如何判断滚动条是否滚到底部

    判断滚动条到底部,需要用到DOM的三个属性值,即scrollTop.clientHeight.scrollHeight.   scrollTop为滚动条在Y轴上的滚动距离.   clientHeigh ...

  8. 值得 .NET 开发者了解的15个特性

    本文列举了 15 个值得了解的 C# 特性,旨在让 .NET 开发人员更好的使用 C# 语言进行开发工作. 1. ObsoleteAttribute ObsoleteAttribute 适用于除组件. ...

  9. JS基础二

    JS的实现: 核心:ECMAScript ECMAScript 并不与任何具体浏览器相绑定,实际上,它也没有提到用于任何用户输入输出的方法(这点与 C 这类语言不同,它需要依赖外部的库来完成这类任务) ...

  10. 上传到 App Store 时出错。

      Try this, it fixed it for me. Open Terminal and run: cd ~ mv .itmstransporter/ .old_itmstransporte ...