Hibernate是啥?

简介:
1:Hibernate和JDBC、ODBC的作用是一样的、用来访问、操作数据库的。它的优势在哪?没用过、我也不知道。。。不过貌似【 数据持久化】是个关键词。
[
下边是百科里的一段话:
对象上数据的修改,Hibernate框架会把这种修改同步到数据库中。
 
  使用数据持久化有以下好处:
 
  1、程序代码重用性强,即使更换数据库,只需要更改配置文件,不必重写程序代码。
 
  2、业务逻辑代码可读性强,在代码中不会有大量的SQL语言,提高程序的可读性。
 
  3、持久化技术可以自动优化,以减少对数据库的访问量,提高程序运行效率。
 
  数据持久化对象的基本操作有:保存、更新、删除、查询等。
]
2:访问的具体步骤是固定的、记不住的话就找度娘~或鹏哥~
Hibernate简介
Hibernate是一个开放源代码的 对象关系映射 框架,它对JDBC进行了非常轻量级的对象封装,使得Java 程序员可以随心所欲的使用对象 编程思维来操纵 数据库。  Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端 程序使用,也可以在Servlet/JSP的Web应用中使用, 最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成 数据持久化 的重任。
核心接口简介
Hibernate的核心接口一共有6个,分别为:Session、SessionFactory、Transaction、Query、Criteria和Configuration。这6个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这6个核心接口分别加以介绍。
Session接口 
Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSession对象称为用户session。 【这貌似就是p哥所说的注意session的不同环境下的不同意义】
SessionFactory接口 
SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory
Configuration类 
Configuration类负责配置并启动Hibernate创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。

Transaction接口【貌似用到了】

  Transaction接口负责 事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。

Query和Criteria接口

  Query和Criteria接口负责执行各种 数据库查询。它可以使用HQL语句或SQL语句两种表达方式。
部分主键介绍

Assigned

  Assigned方式由用户生成主键值,并且要 在save()之前指定否则会 抛出异常
 
  特点:主键的生成值完全由用户决定,与底层 数据库无关。用户需要维护主键值,在调用session.save()之前要指定主键值。

Sequence

  Sequence需要底层 数据库支持Sequence方式,例如 Oracle数据库
 
  特点:需要底层数据库的支持序列,支持序列的数据库有DB2、PostgreSql、Oracle、SAPDb等在不同数据库之间移植 程序,特别从支持序列的数据库移植到不支持序列的数据库需要修改 配置文件 。

Native

  Native主键生成方式会根据不同的底层 数据库自动选择Identity、Sequence、Hilo主键生成方式
 
  特点:根据不同的底层数据库采用不同的主键生成方式。由于Hibernate会根据底层数据库采用不同的映射方式,因此 便于 程序 移植,项目中如果用到多个数据库时,可以使用这种方式。

Foreign GUID

   Foreign用于一对一关系中。GUID主键生成方式使用了一种特殊算法,保证生成主键的唯一性,支持SQL Server和MySQL
其他:略
Hibernate源码中几个包的作用简要介绍:ctrl+shift+o

本文转自ZH奶酪博客园博客,原文链接:http://www.cnblogs.com/CheeseZH/archive/2012/09/10/2678498.html,如需转载请自行联系原作者
相关文章
|
5月前
|
SQL Java 关系型数据库
Hibernate的使用总结
Hibernate的使用总结
38 0
|
SQL Java 数据库连接
|
关系型数据库 Java 数据库连接
|
关系型数据库 Java MySQL
Hibernate之开门见山
1:SSH框架:   Struts2:基于mvc模式的应用层框架模式(Servlet层)   Hibernate:基于持久层的框架(数据访问层)   Spring:创建对象对象处理的依赖关系以及框架整合(Service层) 2:框架和之前学的对比MVC分层模式: 搭建Hiberna...
1203 0
|
Java 数据库连接
|
Java 关系型数据库 MySQL