Hibernate初探

ESP8266入门(一)固件烧录及常见问题分析 为了实现对数据的远程收集和分析,偶然间发现了esp8266这个模块,对此进行了深入的学习,可是在学习之初遇到了大量的问题,这个系列文章就为大家讲讲我遇到的坑以及解决办法,还有esp8266如何连上oneNet云平台的方法。因为我用的是esp8266nodemcu,可以直接连接usb进行烧录,如果用模块的话接线就比较麻烦,可以去搜搜看. 阅读详情
Hibernate
  
  Hibernate是一个免费的开源Java包,它使得与关系数据库打交道变得十分轻松,就像您的数据库中包含每天使用的普通Java对象一样,同时不必考虑如何把它们从神秘的数据库表中取出(或放回到数据库表中)。它解放了您,使您可以专注于应用程序的对象和功能,而不必担心如何保存它们或稍后如何找到它们。
  
  大多数应用程序都需要处理数据。Java应用程序运行时,往往把数据封装为相互连接的对象网络,但是当程序结束时,这些对象就会消失在一团逻辑中,所以需要有一些保存它们的方法。有时候,甚至在编写应用程序之前,数据就已经存在了,所以需要有读入它们和将其表示为对象的方法。手动编写代码来执行这些任务不仅单调乏味、易于出错,而且会占用整个应用程序的很大一部分开发工作量。
  
  优秀的面向对象开发人员厌倦了这种重复性的劳动,他们开始采用通常的“积极”偷懒做法,即,创建工具,使整个过程自动化。对于关系数据库来说,这种努力的最大成果就是对象/关系映射(ORM)工具。
  
  这类工具有很多,从昂贵的商业产品到内置于J2EE中的EJB标准。然而,在很多情况下,这些工具具有自身的复杂性,使得开发人员必须学习使用它们的详细规则,并修改组成应用程序的类以满足映射系统的需要。由于这些工具为应付更加严格和复杂的企业需求而不断发展,于是在比较简单和常见的场景中,使用它们所面临的复杂性反而盖过了所能获得的好处。这引起了一场革命,促进了轻量级解决方案的出现,而Hibernate就是这样的一个例子。
  
  Hibernate的工作方式
  
  Hibernate不会对您造成妨碍,也不会强迫您修改对象的行为方式。它们不需要实现任何不可思议的接口以便能够持续存在。惟一需要做的就是创建一份XML“映射文档”,告诉Hibernate您希望能够保存在数据库中的类,以及它们如何关联到该数据库中的表和列,然后就可以要求它以对象的形式获取数据,或者把对象保存为数据。与其他解决方案相比,它几乎已经很完美了。
  
  由于本文只是一篇介绍性的文章,所以不会引入构建和使用Hibernate映射文档的具体例子(我在《Hibernate: A Developer's Notebook》一书的头几章中已经介绍了一个例子)。此外,在网上和Hibernate的在线文档中,还可以找到一些不错的例子,请参见下面的“其他信息”部分。它实际上相当直观。应用程序对象中的属性以一种简单而自然的方式与正确的数据库结构相关联。
  
  运行时,Hibernate读取映射文档,然后动态构建Java类,以便管理数据库与Java之间的转换。在Hibernate中有一个简单而直观的API,用于对数据库所表示的对象执行查询。要修改这些对象,(一般情况下)只需在程序中与它们进行交互,然后告诉Hibernate保存修改即可。类似地,创建新对象也很简单;只需以常规方式创建它们,然后告诉Hibernate有关它们的信息,这样就能在数据库中保存它们。
  
  Hibernate API学习起来很简单,而且它与程序流的交互相当自然。在适当的位置调用它,就可以达成目的。它带来了很多自动化和代码节省方面的好处,所以花一点时间学习它是值得的。而且还可以获得另一个好处,即代码不用关心要使用的数据库种类(否则的话甚至必须知道)。我所在的公司就曾有过在开发过程后期被迫更换数据库厂商的经历。这会造成巨大的灾难,但是借助于Hibernate,只需要简单地修改Hibernate配置文件即可。
  
  这里的讨论假定您已经通过创建Hibernate映射文档,建立了一个关系数据库,并且拥有要映射的Java类。有一个Hibernate“工具集”可在编译时使用,以支持不同的工作流。例如,如果您已经拥有Java类和映射文档,Hibernate可以为您创建(或更新)必需的数据库表。或者,仅仅从映射文档开始,Hibernate也能够生成数据类。或者,它可以反向设计您的数据库和类,从而拟定映射文档。还有一些用于Eclipse的alpha 插件,它们可以在IDE中提供智能的编辑支持以及对这些工具的图形访问。
  
  如果您使用的是Hibernate 2环境,这些工具鲜有提供,但是存在可用的第三方工具。
  
  使用Hibernate的场合
  
  既然Hibernate看起来如此灵活好用,为什么还要使用其他的工具呢?下面有一些场景,可以帮助您做出判断(或许通过提供一些比较和上下文,可以有助于鉴别非常适用Hibernate的场合)。
  
  如果应用对于数据存储的需要十分简单——例如,您只想管理一组用户优先选择——您根本不需要数据库,更不用说一个优秀的对象-关系映射系统了(即使它也如Hibernate这般易于使用)!从Java 1.4开始,有一个标准的Java Preferences API可以很好地发挥这个作用。(在ONJava文章中可以找到有关Preferences API的更多信息。)
  
  对于熟悉使用关系数据库和了解如何执行完美的SQL查询与企业数据库交互的人来说,Hibernate似乎有些碍手碍脚,这就像带有动力和自动排挡的快艇车会使注重性能的赛车驾驶员不耐烦一样。如果您属于这种人,如果您所在的项目团队拥有一个强大的DBA,或者有一些存储过程要处理,您可能想研究一下iBATIS。Hibernate的创建者本身就把iBATIS当作是另一种有趣的选择。我对它很有兴趣,因为我们曾为一个电子商务站点开发了一个类似的系统(其功能更为强大),而且从那时到现在,我们已经在其他环境中使用过它,尽管在发现Hibernate之后,在新项目中我们通常更喜欢使用Hibernate。您可以认为,以SQL为中心的解决方案(比如iBATIS)是“反向的”对象/关系映射工具,而Hibernate是一个更为传统的ORM。
  
  当然,还有其他的外部原因会导致采用另外的方法。比如,在一个企业环境中,必须使用成熟的EJB架构(或者其他的一些非普通对象映射系统)。可以为提供自己的数据存储工具的平台量身定做代码,比如Mac OS X's Core Data。使用的可能是像XML DTD这样的存储规范,而它根本不涉及关系数据库。
  
  但是,如果您使用的是富对象模型,而且想要灵活、轻松且高效地保存它(无论您是否正要开始或已经决定使用关系数据库,只要这是一个选择——而且存在可用的优秀免费数据库,比如MySQL,或可嵌入Java的HSQLDB,它就应该始终是一个选择),那么Hibernate很可能就是您理想的选择。您可能会惊讶于节省的时间之多,以及您将会多么地喜欢使用它。
  
  其他信息
  
  Hibernate项目有大量的在线文档,可以帮助您找准方向,快速开始使用。
  
  权威性的参考资料是Hibernate in Action,作者是Christian Bauer和Gavin King,都是Hibernate的创建者。该书全面而基础地讲述了Hibernate包的功能和正确的使用方法。
  
  阅读我的书Hibernate: A Developer's Notebook,也是一种快速上手的好方法。它直接但详细地讲述了如何在Java项目中设置Hibernate,以及如何使用它的一些最重要的功能。其中的代码示例普遍基于Hibernate和HSQLDB的早期版本,所以如果您想不加改动地使用它们,需要使用这两种软件的正确版本。无论如何,基本的概念是正确的,而且我希望能够尽快地针对Hibernate 3更新本书。
  
  另一本有趣的书是Better Faster Lighter Java,作者是Bruce Tate 和Justin Gehtland。书中给出了一些实用方法,可以以合理的方式完成实际的项目,这也是它流行的原因之一。它在如何评估和使用(或否决)可用的Java技术方面给出了合理建议,并作为正确方法的例子提到了Hibernate和Spring。
  
  最后,“Working with Hibernate in Eclipse”(它预先提到了更强大的新的alpha版的Hibernate 3工具)中详细讲述了如何将一个叫做Hibernate Synchronizer的Eclipse插件与Hibernate一起使用。

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=530479 

DSP在线升级方案:TMS320C6678使用网络或者串口输出升级数据进行固件升级 下面这段先引用创龙的说明 IBL 运行后, 将从 NOR FLASH 或 NAND FLASH 的 0x00080000 地址引导 ELF/BBLOB 格式 用户程序。 当引导 ELF 格式用户程序时, IBL 会解析用户程序头部信息,并根据头部信息 拷贝不同的代码段至指定 CPU 内存地址,然后将 PC 指针跳转至_c_int00, 再运行用户程 序。当引导 BBLOB 格式用户程序时,由于无头部信息, IBL 会将用户程序拷贝至 0x9E000000 (该内存地址为 IBL 代码指定),并将 PC.. 阅读详情

相关推荐

Blender入门教程-3D视图界面介绍

3D视图用于与3D场景交互,可用于各种目的,例如建模、动画、纹理绘制等。在关闭 启动画面 后,启动场景会显示在3D视口中(如果没有加载其他blend文件)。01 标题栏标题栏包含了基于当前 模式 的各种菜单和控制。

weixin_52345129的博客 2255

Hibernate详谈

一、Hibernate是什么? Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的ORM框架,Hibernate可以自动生成SQl语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库Hibernate可以使用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的web应用中使用Hibernate数据库与界面之间的桥梁,将对数据库的...

z_623623的博客 1349

Transformer实战(32)——Transformer模型压缩

在本节中,我们学习了如何在硬件资源受限的情况下减轻运行大模型的负担。我们介绍了如何通过蒸馏、剪枝和量化从训练好的模型中提取高效模型。预训练轻量级的通用语言模型(如 DistilBERT) 可以在各种任务上进行微调,并表现出与非蒸馏模型相当的性能。随着数据量的不断增加,我们希望模型能够更快地运行,在这方面,高效 Transformer 起着至关重要的作用。

盼小辉丶的博客 2072

Hibernate简单讲解

所谓的ORM就是利用描述对象和数据库表之间映射的元数据,自动把java应用程序中的对象持久化到关系型数据库的表中。通过操作java对象,就可以完成对数据库表的操作。可以把ORM理解为关系型数据和对象的一个纽带,开发人员只需关注纽带一段映射的对象即可。Hibernate框架使用ORM思想对数据库进行crud操作在web阶段学习的javabean,更准确的叫法应该是实体类ORM:Object Relational Mapping,对象关系映射。让实体类和数据库表对应,让实体类属性和表中字段对应。

weixin_42694511的博客 5021

hibernate是什么?

1.什么是ORM ORM,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法。 O代表的是Objcet R代表的是Relative M代表的是Mapping 2.什么是Hibernate框架? Hiberna...

吻得太逼真的博客 1448

hibernate(1)hibernate入门介绍

一、hibernate是什么         Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序...

Meomry_HuiYi的博客 372

Hibernate 基础看这一篇就够了

1.什么是Hibernate Hibernate是一种ORM框架,全称为 Object_Relative DateBase-Mapping,在Java对象与关系数据库之间建立某种映射,以实现直接存取Java对象。 2.为什么使用Hibernate 使用Hibernate框架就不用我们写很多繁琐的SQL语句。Hibernate实现了ORM,能够将对象映射成数据库表,从而简化我们的开发! 3.工作原理 读取并解析配置文件 读取并解析映射信息,创建SessionFactory 打开Sesssion 创建事务Tr

qq_40970962的博客 546

Hibernate-hibernate初探

HIBERNATE 1. ORM(object relational mapping),简化数据库操作; 2. 作用于DAO层。优势: 1. 优秀的java持久化层解决方案; 2. 主流的对象-关系映射工具; 3. 简化了JDBC繁琐的编码; 4. 将数据库的连接信息都存放在配置文件。 5. dao层操作与数据库无关,当更换oracle、mysql、db2、SQLserv

北京Java青年 572

初探Hibernate

概述Hibernate可以直接操作Java对象。底层使用JDBC实现,是对JDBC轻量级的封装。相关概念常用概念: * SessionFactory * Session * TransactionSessionFactory是一个线程安全的工厂类,可以为每一个线程生成不同的Session。Session代表用户的一次操作。Session周期很短,在操作结束时用session.close()关闭

KevinLee的博客 365

Hibernate初探之单表映射笔记(1)

以下内容来自慕课网视频《Hibernate初探之单表映射》 第一章 Hibernate初识 1-2 什么是ORM 1-3 Hibernate简介 1-4 Hibernate开发前准备 1-5 编写第一个Hibernate例子 1-7 hibernate配置文档 1-8 创建持久化类 1-9 创建对象-关系映射文件和数据库 1-10 使用Junit进行单元测试 1-11 通过hiberna

肆尾葱的博客 1538

hibernate初探

package test01; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; import java.util.HashMap; public class TestMain { public static void main(String[] args) { //1.读取hibernate.cfg.xml的配

菜鸟在路上 150

hibernate 初探

Struts+spring+hiberenate流程 客户端发起一个请求到应用服务端,应用服务端把这个请求分发给struts,它会找到对应的action执行execute方法,在这个方法里面调用service层进行业务逻辑处理,在进行业务逻辑处理的时候,调用dao层来访问model层的实体对象,进而持久化数据库,当一系列的操作完成之后,dao层把结果返回给service层,service层返...

遗失的世界 169

Hibernate入门初探

Hibernate入门初探   (一)    持久化: 数据在计算机中的两种存储状态: 瞬时状态:保存在内存的程序数据,程序退出后,数据就消失了,称为瞬时状态 持久状态:保存在磁盘上的程序数据,程序退出后依然存在,称为程序数据的持久状态 持久化就是将程序数据在瞬时状态和持久状态之间相互转换的机制。 (二)    ORM原理: ORM:Object Relation Mapping对

90worker 1554

Hibernate初探之单表映射

什么是ORM? ORM(Object Relationship Mapping): 对象关系映射。 利用面向对象思想编写的数据库应用程序最终都是将对象信息保存在关系型数据库中,于是要编写很多和底层数据库相关的SQL语句。比如My SQL,SQL Server, Oracle等。这和面向对象的编程思想格格不入。在程序当中编写SQL语句有什么不好? 1. 不同的数据库使用的SQL语法不同。比如PL

Winnie 的博客 406

Hibernate初探

先随便新键一个项目生成一个默认的配置文件 主要的架包支持 pom.xml [html] view plain copy project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/200

qq_39010381的博客 239

hibernate初探

hibernate初探

u011526599的专栏 597

System-on-a-Chip——Design and Test.Rochit Rajsuman

SOC芯片从设计到测试得所有环节,本书都覆盖到了,一本SOC设计、验证、测试得权威参考手册,无论是芯片工程师还是硬件工程师都值得一读。

EN-62304医疗器械软件评估报告(附软件产品技术要求+注册模板)(1).docx

EN-62304医疗器械软件评估报告(附软件产品技术要求+注册模板)(1).docx

上一篇: 7 种流行的PHP IDE
下一篇: 《世界上最远的距离》(泰戈尔)
formiss
博客等级 码龄21年 138粉丝 140原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值