Hibernate教程

Hibernate,由Gavin King创建,被称为Java开发人员的最佳和主导对象/关系持久性(ORM)工具(现在支持.NET)。它提供了许多优雅和创新的方法来简化Java中的关系数据库处理任务。

Hibernate在许多方面都很出色,但它需要适当地使用。在本教程中,它提供了许多有关使用Hibernate3的分步示例和说明。

PS教程更新为Hibernate v3.6.1.Final。

本教程的学习会涉及英文文章,使用翻译插件即可愉快学习^_^

Hibernate快速入门

Hello World示例体验Hibernate框架。

  • Maven 2 + Hibernate 3.2.3 + MySQL 5.0示例(XML Mapping)
    Hibernate 3.2.3示例在MySQL数据库中,具有经典的hbm映射。
  • Maven 2 + Hibernate 3.2.3 + MySQL 5.0示例(注释)
    Hibernate 3.2.3在MySQL数据库中的示例,带有Hibernate / JPA注释。
  • Maven 3 + Hibernate 3.6.3 + Oracle 11g示例(XML Mapping)
    Oracle数据库中的Hibernate 3.6示例,具有经典的hbm映射。
  • Maven 3 + Hibernate 3.6.3 + Oracle 11g示例(注释)
    Oracle数据库中的Hibernate 3.6示例,带有Hibernate / JPA注释。

Hibernate Association(表关系)

如何在Hibernate中一对一,一对多,多对多地定义表关系。

  • 一对一示例(XML Mapping)
    Hibernate使用hbm映射文件的一对一示例。
  • 一对一示例(注释)
    使用注释代码一对一地休眠。
  • 一对多示例(XML Mapping)
    Hibernate使用hbm映射文件的一对多示例。
  • 一对多示例(注释)
    使用注释代码对一对多示例进行休眠。
  • 多对多示例(XML Mapping)
    Hibernate使用hbm映射文件进行多对多示例(连接表中没有额外的列)。
  • 多对多示例(注释)
    Hibernate带有注释代码的多对多示例(连接表中没有额外的列)。
  • 多对多示例 - 连接表+额外列(注释)
    Hibernate带有注释代码的多对多示例(使用连接表中的额外列)。
  • 关闭主题:理解反向键工作,示例和解释
    “反向”是Hibernate中最令人困惑的关键字,但您必须清楚地理解这一点,以便微调您的关系性能。

Hibernate / JBoss Tools + Eclipse IDE

学习如何使用Hibernate工具是必须的!

  • 在Eclipse IDE中安装Hibernate / JBoss工具在Eclipse IDE中
    安装Hibernate。
  • 使用Hibernate Tools生成Hibernate映射文件和注释
    自动为您生成Hibernate代码。

Hibernate日志记录

如何登录Hibernate

  • 在Hibernate中配置日志记录 -
    SLF4j + Log4j使用Hibernate集成SLF4j + Log4j。
  • 在Hibernate中配置日志记录 -
    Logback使用Hibernate集成Logback。

Hibernate连接池

如何在Hibernate中配置数据库连接池

  • 在Hibernate中配置C3P0连接池使用Hibernate
    集成C3P0。
  • 在Hibernate中配置DBCP连接池使用Hibernate
    集成Apache DBCP。

Hibernate Cascade

Hibernate级联用于自动管理另一方的状态。

  • 级联示例(保存,更新,删除和删除孤立)
    保存,更新,删除和删除孤立的级联示例。删除和删除孤儿之间的区别。
  • 级联和反向之间的差异
    许多Hibernate开发人员对级联和反向之间的差异感到困惑,这里是解释。
  • Cascade - JPA和Hibernate注释常见错误
    由初学者或经验丰富的Hibernate开发人员制作的一个超级简单的常见注释错误 - 在Hibernate中的JPA级联注释?

Hibernate查询语言(HQL)

Hibernate自己的语言用于数据操作,它与数据库SQL语言非常相似。

  • Hibernate查询示例(HQL)
    HQL CRUD示例,选择,更新,删除和批量插入(没有单个插入支持)。
  • Hibernate参数绑定示例
    使用“命名参数”和“位置参数”方法将参数绑定到HQL。
  • 如何在Hibernate查询中嵌入Oracle提示将Oracle提示
    嵌入到Hibernate Query中以增加Oracle查询性能的技巧。

休眠标准

Hibernate Criteria API是Hibernate查询语言(HQL)的替代品。在许多可选搜索条件中,它始终是一个很好的解决方案。

  • Hibernate Criteria示例
    Criteria示例 - 基本查询,排序查询,限制查询和分页结果。

Hibernate Native SQL

在某些情况下,Hibernate HQL或Criteria不足以完成您想要的操作,在这里您可以直接使用本机数据库SQL语言。

  • Hibernate本机SQL查询示例
    显示如何在Hibernate中使用本机SQL的指南。

Hibernate命名查询

命名查询允许开发人员将HQL放入XML映射文件或注释中以实现可维护性,您只是不希望所有的HQL语法都分散在Java代码中。:)

  • Hibernate命名查询示例
    在XML文件和Annotation中使用命名查询。

Hibernate Transaction

所有与Hibernate Transaction相关的东西

  • Hibernate Transaction handle示例
    使用Hibernate事务的简单标准示例。

Hibernate Advance技术

一些Hibernate Advance技术,很少使用但实用技能(数据过滤器和拦截器)。

  • Hibernate数据过滤器示例 - XML和注释
    Hibernate数据过滤器用于过滤数据库中的检索数据,这是一个使用XML或Annotation中的数据过滤器的指南。
  • Hibernate拦截器示例 - 审计日志
    Hibernate拦截器用于拦截像CRUD操作这样的Hibernate事件,这是Hibernate拦截器审计日志实现的一个详细示例。

Hibernate性能

一些调整将使你的Hibernate运行得更快:)

  • dynamic-insert属性示例
    使用dynamic-insert来避免SQL INSERT语句中包含未修改的属性。
  • dynamic-update属性示例
    使用dynamic-insert来避免SQL UPDATE语句中包含未修改的属性。
  • Hibernate可变示例(类和集合)
    使用mutable关键字来避免生成不必要的SQL语句。
  • Hibernate - 获取策略示例
    Hibernate获取策略用于优化Hibernate生成的select语句,这是任何Hibernate开发人员必须学习的技能。
  • session.get()和session.load()之间有所不同
    了解何时应该使用get或load来检索对象以避免不必要的数据库命中。

将Hibernate与其他框架集成

将Hibernate与其他框架集成的示例。

  • Struts + Hibernate集成
    示例将Hibernate与Struts框架集成。
  • Struts + Spring + Hibernate集成
    示例将Hibernate与Struts和Spring框架集成在一起。
  • Spring + Hibernate Integration
    将Hibernate与Spring框架集成的示例。
  • Spring + Hibernate Integration(Annotation)
    将Hibernate与Spring框架(Annotation版本)集成的示例。

Hibernate FAQ

一些常见的回答问题:

  • 如何从不同的目录加载hibernate.cfg.xml
    默认情况下,Hibernate在项目类路径中查看hibernate.cfg.xml,这是从指定文件夹加载它的指南。
  • 如何以编程方式添加Hibernate XML映射文件(hbm.xml)以编程
    方式加载hibernate.cfg.xml的提示
  • Hibernate数据库方言
    列表不同类型数据库供应商的方言集合列表。
  • show_sql,format_sql和use_sql_comments
    配置Hibernate以将生成的SQL语句显示到控制台。
  • 如何显示hibernate sql参数值--P6Spy 
    使用P6Sqpy第三方库来显示Hibernate SQL参数值。
  • 如何显示hibernate sql参数值 - Log4j
    使用Log4j显示Hibernate SQL参数值。
  • 如何在Hibernate中调用存储过程
    不建议将业务逻辑放入存储过程中,没关系,您仍然允许在Hibernate中调用存储过程。
  • 如何在Hibernate中使用数据库保留关键字
    在某些特殊情况下,您可能需要在Hibernate类中使用database关键字(不推荐),这是实现它的技巧。
  • 如何将图像保存到数据库中
    教程如何使用Hibernate将图像保存到数据库中。

Hibernate常见错误

以下是Hibernate开发中的常见错误消息列表。

  • 如果列名为关键字,则无法插入,例如DESC
  • Hibernate - 找不到C3P0ConnectionProvider
  • Hibernate - 不推荐使用AnnotationConfiguration类型
  • java.lang.ClassNotFoundException:javassist.util.proxy.MethodFilter
  • 请记住,序数参数是基于1的! - 休眠模板
  • org.hibernate.AnnotationException:未知的Id.generator
  • 需要使用AnnotationConfiguration实例
  • java.lang.NoClassDefFoundError:org / dom4j / DocumentException
  • java.lang.NoClassDefFoundError:org / apache / commons / logging / LogFactory
  • java.lang.NoClassDefFoundError:org / apache / commons / collections / SequencedHashMap
  • java.lang.NoClassDefFoundError:net / sf / cglib / proxy / CallbackFilter
  • java.lang.NoClassDefFoundError:com / mchange / v2 / c3p0 / DataSources
  • java.lang.NoClassDefFoundError:org / hibernate / annotations / common / reflection / ReflectionManager
  • java.lang.NoClassDefFoundError:antlr / ANTLRException
  • java.lang.NoClassDefFoundError:javax / transaction / Synchronization
  • java.lang.ClassFormatError:在类文件中不是本机或抽象的方法中的Absent Code属性...
  • java.lang.NoSuchMethodError:org.objectweb.asm.ClassWriter
  • java.lang.ClassNotFoundException:javax.persistence.Entity
  • java.lang.ClassNotFoundException:javax.transaction.TransactionManager
  • java.lang.ClassFormatError:在类文件中不是本机或抽象的方法中的Absent Code属性...

无关

  • 为什么我为我的项目选择Hibernate框架?
    我想在未来的项目中实现Hibernate的原因。

Hibernate参考

  • Hibernate官方文档
  • Hibernate Wiki

作者 mkyong

Mkyong.com的 创始人,喜欢Java和开源的东西。在Twitter上关注他,或在Facebook或Google Plus上与他交朋友。如果您喜欢我的教程,请考虑向这些慈善机构捐款[推荐 包括联合国儿童基金会 无国界医生]。

本文出翻译自:http://www.mkyong.com/tutorials/hibernate-tutorials/

转载请备注作者和出处

Hibernate教程——史上最全面的项目和教程集合相关推荐

  1. Eclipse安装教程 ——史上最详细安装Java Python教程说明

                                                                Eclipse安装教程 --史上最详细安装Java&Python教程说明 ...

  2. 老式计算机组装教程,史上最全的电脑安装教程 90后小妹妹手把手教你装电脑的图文教程...

    如今电脑已经成为家家户户都不可少的家用电器,而组装电脑是家庭最适合的,相比品牌电脑性价比要高.可能一些用户自己还不会装电脑,那么你可是比较落后了,现在很多年轻人都会自己装电脑,如果你还不会请看以下90 ...

  3. .Net魔法堂:史上最全的ActiveX开发教程——发布篇

    一. 前言 接着上一篇<.Net魔法堂:史上最全的ActiveX开发教程--开发篇>,本篇讲述如何发布我们的ActiveX. 二.废话少讲,马上看步骤! 1. 打包  C#开发的Activ ...

  4. 史上最简单的 Spring MVC 教程(九)

    1 前言 在史上最简单的 Spring MVC 教程(五.六.七.八)等四篇博文中,咱们已经分别实现了"人员列表"的显示.添加.修改和删除等常见的增.删.改.查功能.接下来,也就是 ...

  5. 史上最全vscode配置使用教程

    史上最全vscode配置使用教程 正在上传-重新上传取消 灰蓝宇墨 ​ 上海闪店联信息科技有限公司 前端工程师 5,041 人赞同了该文章 工欲善其事,必先利其器.想要优雅且高效的编写代码,必须熟练使 ...

  6. 10_史上最全的Markdown使用教程(没有之一)(20190115)

    我用markdown写博客已经有半年之久了吧,但是还是会出现有些你想用的功能很难找,或者你尝试使用它不好使,为了帮助那些和我一样热衷于使用markdown的乘客,我决定自己造一架航班,让我们一起搭乘M ...

  7. .Net魔法堂:史上最全的ActiveX开发教程——部署篇

    一.前言 接<.Net魔法堂:史上最全的ActiveX开发教程--发布篇>,后我们继续来部署吧! 二. 挽起衣袖来部署   ActiveX的部署其实就是客户端安装ActiveX组件,对未签 ...

  8. 史上最全的FreeIPA搭建教程(二)

    如有疑问,请私信我!!!! 码字儿截图不容易啊 1.web后台使用教程 名字显示是反的,需要改成正确的 2.FreeIPA更新证书 默认的证书都是2年时间,到期不更新后果的就是所有账号都无法登录了 # ...

  9. 史上最简单的spark系列教程 | 完结

    <史上最简单的spark系列教程>系列: 与其说是教程不如说是改良后的个人学习笔记|| 教程参考自:<spark官方文档>,<spark快速分析>,<图解Sp ...

  10. 如果自己组装一个台式计算机有哪些,2015电脑组装教程:史上最全自己组装电脑教程...

    DIY电脑一直都是电脑爱好者非常喜欢的,电脑组装通常包括电脑硬件的选择,DIY硬件组装以及操作系统安装三个部分. 对于电脑爱好者来说,通过自己动手DIY组装电脑,不仅可以更为深刻的认识硬件,了解电脑主 ...

最新文章

  1. 【原】iOS学习之事件处理的原理
  2. Java将异常入库_Exception异常库
  3. css中对position的几种定位方式的最佳诠释
  4. 包装类 || 装箱与拆箱
  5. QT安卓web使用mysql_Qt使用MySQL笔记一
  6. TensorFlow Lite支持设备内置会话建模
  7. ASP.NET Core 中断请求了解一下(翻译)
  8. 【转】老男孩:Linux企业运维人员最常用150个命令汇总
  9. linux下设置java,Linux下设置java的环境变量
  10. php proc open 返回,PHP proc_open多次打开
  11. sqlite字段类型说明
  12. 关于集合addAll()方法的坑度
  13. Bjui框架--日期选择器
  14. matlab与vrep联合仿真,MATALB与VREP联合仿真
  15. 谷歌VR展示360度全景图
  16. GitHub上十大热门Python项目
  17. html.ex.day02
  18. tilemap 菱形_带高度的isometric tile map 斜45度 2d 地图制作
  19. 《OpenGL v1.1》——(1)接入Win32窗口,并描绘基本图元
  20. WPF 实现圆形进度条

热门文章

  1. 计算机网络——网络层
  2. 【Java】俄罗斯方块小游戏(附源码)
  3. android地图搜索功能,[Android]百度地图POI检索
  4. 《Android 应用案例开发大全(第3版)》——第1.2节掀起Android的盖头来
  5. cv2 和matplotlib中画图时的颜色选取
  6. 南华大学c语言实验答案,南华大学C语言习题答案2012年版
  7. sql必知必会 案例数据库安装教程
  8. python简明教程电子书下载_python简明教程中文pdf下载-Python入门级电子书完整免费版-东坡下载...
  9. 70个python毕设项目_这10个Python项目很有趣!
  10. JAVA进行文档转换_基于JAVA实现由Word文档向LaTeX文档转换的方法及系统与流程