在hibernate中,他通过配置文件(hibernate,cfg.xml)和映射文件(...hbm.xml)把对象或PO(持久化对象)映射到数据库中表,然后通过操作持久化对象,对数据库进行CRUD。下面简单介绍hibernate中的一些核心组件。

ORM:

对象-关系映射(简称ORM),是随着面向对象的软件开发方法发展而产生的。用来把对象模型(实体类)表示的对象映射到基于SQL的关系模型数据库结构中去。这样,我们在具体的操作实体对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作实体对象的属性和方法。ORM技术是在对象和关系之间提供了一条桥梁,前台的对象型数据和数据库中的关系型的数据通过这个桥梁来相互转化。

Hibernate的核心组件:

1.Configuration类:读取配置文件,生成SessionFactory对象。

2.SessionFactory接口:生产Session实例工厂。

3.Session接口:通过该对象可以对数据库进行操作(核心接口)。

4.Query接口:用来对持久化类进行查询的操作部,创建方法createQuery()。

5.Transaction接口:管理hibernate事物,主要防范油commit( )和rollback(  ),生成方法beaginTrancation( )方法生成。

Hibernate的常用方法:

save(Object entity):保存一个实体到数据库

update(Object entity):更新一个实体在hibernate中update方法是基于主键进行更新操作的。

delete(Object entity):删除一个实体delete(null)方法在删除为null的实体时会发生异常。实体对象中只要id有值,delete()就可以删除。(delete方法默认是根据主键删除)

get(Class clazz,Serializable id):根据id查询一个实体。参数的含义:Class表示要查询的实体类字节码。Serializable就是查询的条件。

beginTransaction():开启事务,并返回事务对象

注意:get和load方法的区别:

1、查询的时机不一样

get方法任何时候都是立即加载,即只要一调用get马上发起数据库查询

load方法默认情况下是延迟加载,即真正用到对象的非OID字段数据才发起查询

load方法可以通过配置的方式改为立即加载。

2、返回的结果不一样

get方法永远返回查询的实体类对象。

load方法当是延迟加载时,返回的是实体类的代理对象。

可以在class标签里添加一个属性  使的load变成get   lazy="false"

案列:

实体类:

最新文章

  1. 对Thoughtworks的有趣笔试题实践
  2. homework-01 "最大子数组之和"的问题求解过程
  3. Linux 命令 - ping: 向网络主机发送 ICMP ECHO_REQUEST 包
  4. js完美继承代码示例
  5. 快速构建Windows 8风格应用30-应用生命周期管理
  6. linux 内核的futex pi-support,即pi-futex使用rt_mutex委托
  7. 为你揭露2018微信公开课pro的12个重点
  8. PowerDesigner如何将设计的表更新到数据库中
  9. Hadoop系列003-Hadoop运行环境搭建
  10. LEETCODE 07 09
  11. Linux下Docker快速部署LAMP
  12. 动态LINQ(Lambda表达式)
  13. python-ceilometerclient命令行(2)
  14. excelToWord-vba
  15. 在ios上时间无法parse返回 "Invalid Date"
  16. vue基础——vue实例
  17. MQTT的学习研究(十四) MQTT moquette 的 Callback API 消息发布订阅的实现
  18. 为eclipse安装python、shell开发环境和SVN插件
  19. Postgresql死锁的处理
  20. 5309 《Java程序设计》第6周学习总结

热门文章

  1. android adapter 中添加OnClickListener事件
  2. Snort初探
  3. 基于JAVA实现的排序算法总结
  4. Python学习笔记(二):字典
  5. 认识python中的set集合及其用法
  6. iOS-电子书开发 笔记
  7. Spring基础篇——bean的自动化装配
  8. UbuntuNFS服务器配置
  9. iOS7动态调整文字大小
  10. 8、flask之flask-script组件