同时在面向对象软件和关系型数据库进行工作,可能会非常复杂和费时。数据在对象和数据库之间可能会不一致,然后导致开发成本会非常高。

Hibernate 是一个针对 Java 环境的对象关系映射(Object/Relational Mapping (ORM))。对象关系映射的定义为从技术上在数据模型和关系数据库模型之间进行映射。请参考 http://en.wikipedia.org/wiki/Object-relational_mapping 来获得更高层次的讨论。同时,Martin Fowler 的 OrmHate 文章讨论了很多映射不吻合的问题。

尽管在使用 Hibernate 的时候不需要你具有很强的 SQL 背景,但是具有一些对 SQL 和相关概念的的基本了解能够帮助你更加快速和全面的理解 Hibernate。对数据模型(data modeling)原理的了解对使用 Hibernate 非常重要。http://www.agiledata.org/essays/dataModeling101.html 和 http://en.wikipedia.org/wiki/Data_modeling 能够帮助你从开始了解数据模型的原理。

Hibernate 对 Java 类到数据库表中的映射进行实现,同时也实现了 Java 数据类型到 SQL 数据类型。更进一步,Hibernate 能够对数据进行查询和检索。Hibernate 能够显著的减少针对 SQL 和 JDBC 的手动数据处理。Hibernate 的目标是通过尽量减少针对 SQL 和 JDBC 需要的手动操作,来减少 95% 的通用数据持久性相关程序开发任务。与其他持久性解决方案不同的是,Hibernate 并不隐藏 SQL 的强大功能,并保证你对关系技术和知识的投资与往常一样并有效。

Hibernate 可能不是针对数据中心的最佳解决方案。数据中心的意思是在数据库中实现所有的商业逻辑。Hibernate 针对面向对象域模型和基于 Java 中间层的商业逻辑非更有效率。Hibernate 能够帮助你删除和封装供应商特定 SQL 代码和简化从返回结果集从表格展示转换为对象。

如果你希望参与项目,请参考 http://hibernate.org/orm/contribute/ 链接。

针对本指南参考可用的项目和代码请参考 hibernate-tutorials.zip 中的内容。

https://www.cwiki.us/display/HIBERNATE/Preface

Hibernate 5 开始使用指南前言的更多相关文章

  1. ALinq Dynamic 使用指南——前言

    一.简介 ALinq Dynamic 为ALinq以及Linq to SQL提供了一个Entiy SQL的查询接口,使得它们能够应用Entity SQL 进行数据的查询.它的原理是将Entiy SQL ...

  2. SpringMVC学习指南-前言

    SpringMVC是Spring框架中用于Web应用快速开发的一个模块. SpringMVC基于Spring框架.Servlet和JSP. ------------------------------ ...

  3. Hibernate 5 入门指南-基于映射文件

    由于Hibernate 4版本混乱,Hibernate 3有些过时,Hibernate 5的开发文档尚不完善,所以构建一份简单的Hibernate 5的入门指南 注:案例参考Hibernate 官方参 ...

  4. Spring Boot 2.0 升级指南

    Spring Boot 2.0 升级指南 前言 Spring Boot已经发布2.0有5个月多,多了很多新特性,一些坑也慢慢被填上,最近有空,就把项目中Spring Boot 版本做了升级,顺便整理下 ...

  5. Microsoft Orleans 之 入门指南

    Microsoft Orleans 在.net用简单方法构建高并发.分布式的大型应用程序框架. 原文:http://dotnet.github.io/orleans/ 在线文档:http://dotn ...

  6. Chrome 控制台实用指南【转】

    转自伯乐在线. Chrome 控制台实用指南 前言 Chrome浏览器我想是每一个前端er必用工具之一吧,一部分原因是它速度快,体积不大,支持的新特性也比其它浏览器多,还有一部分我想就是因为它的控制台 ...

  7. OpenCV 编码样式指南

    OpenCV 编码样式指南   前言 本文档是对OpenCV中代码风格的简短说明,因为OpenCV的核心库(cv,cvaux)是用C和C++编写的,所以本文档仅对用C和C++代码的编写有效.   文件 ...

  8. [转]JavaScript ES6 class指南

    [转]JavaScript ES6 class指南 前言 EcmaScript 2015 (又称ES6)通过一些新的关键字,使类成为了JS中一个新的一等公民.但是目前为止,这些关于类的新关键字仅仅是建 ...

  9. Ext JS 6学习文档–第1章–ExtJS入门指南

    Ext JS 入门指南 前言 本来我是打算自己写一个系列的 ExtJS 6 学习笔记的,因为 ExtJS 6 目前的中文学习资料还很少.google 搜索资料时找到了一本国外牛人写的关于 ExtJS ...

随机推荐

  1. python *****【异常处理】*****

    try: val = input('请输入数字:') num = int(val) except Exception as e: print('操作异常') # import requests # # ...

  2. Java中的自动拆装箱(转)

    出处: 一文读懂什么是Java中的自动拆装箱 本文主要介绍Java中的自动拆箱与自动装箱的有关知识.  基本数据类型 基本类型,或者叫做内置类型,是Java中不同于类(Class)的特殊类型.它们是我 ...

  3. k8s-kubectl命令大全

    Kubectl命令行管理对象 类型 命令 描述 基础命令 create 通过文件名或标准输入创建资源. expose 将一个资源公开为一个新的Kubernetes服务. run 创建并运行一个特定的镜 ...

  4. go 拼接sql

    //原文链接:https://www.jianshu.com/p/a0569157c418 golang mysql拼接子查询 使用fmt.Sprintf拼接SQL 实例代码 func Select( ...

  5. python2.7学习笔记——菜鸟教程

    标准数据类型 Numbers(数字) String(字符串) List(列表) Tuple(元组) Dictionary(字典) list = [ 'runoob', 786 , 2.23, 'joh ...

  6. C#面向对象19 值传递和引用传递

    值类型:int double char decimal bool enum struct引用类型:string 数组 自定义类 集合 object 接口 **值传递和引用传递1.值类型在复制的时候,传 ...

  7. 如何使用Jedis操作redis

    public class JredisTest { private static Jedis jedis = new Jedis("localhost", 6379); publi ...

  8. 使用vue-echarts,需要按需引入

    引入缺失报错: Error in callback for watcher "options": "Error: Component series.bar not exi ...

  9. web项目部署在centos 7验证码显示不出来解决方案

    今天把项目部署在centos7上,发现验证码显示不出来,看了一下tomcat日志 Exception in thread "http-nio-8080-exec-3" java.l ...

  10. java_day11_IO流

    第十一章:IO流 1.流的概念 流是个抽象的概念,是对输入输出设备的抽象,Java程序中,对于数据的输入/输出操作都是以"流"的方式进行.设备可以是文件,网络,内存等 流具有方向性 ...