hibernate学习笔记(1)结构与基本数据类型

一,概览

   Hibernate负责从Java类到数据库表的映射,以及从Java数据类型到SQL数据类型的映射。另外还提​​供数据查询和检索功能。它可以显着减少在SQL和JDBC中手动处理数据的开发时间。Hibernate的设计目标是通过消除使用SQL和JDBC进行手动,手工数据处理的需要。(对象关系映射(英语:(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换[1]  。从效果上说,它其实是创建了一个可在编程语言里使用的--“虚拟对象数据库”。)

   对于只使用存储过程来实现数据库中的业务逻辑的以数据为中心的应用程序来说,Hibernate可能不是最好的解决方案,它对于基于Java的中间层中的面向对象的领域模型和业务逻辑非常有用。但是,Hibernate肯定可以帮助您删除或封装特定于供应商的SQL代码,并简化将结果集从表格表示转换为对象图形的常见任务。

以下是hibernate架构图:   

                                                       

作为ORM解决方案,Hibernate有效地位于Java应用程序数据访问层和关系数据库之间,如上图所示。Java应用程序利用Hibernate API来加载,存储,查询其域数据。这里我们将介绍基本的Hibernate API。这将是一个简短的介绍; 我们稍后会详细讨论这些合约。
作为一个JPA提供者,Hibernate实现了Java Persistence API规范,并且JPA接口和Hibernate特定实现之间的关联可以在下图中看到:


1)SessionFactory(org.hibernate.SessionFactory)
应用程序域模型到数据库映射的线程安全(和不可变)表示。充当org.hibernate.Session实例的工厂。该EntityManagerFactory是JPA等价的SessionFactory,基本上这两个汇聚到同一SessionFactory执行。
A SessionFactory是非常昂贵的创建,所以,对于任何给定的数据库,应用程序应该只有一个关联SessionFactory。SessionFactoryHibernate所使用的维护服务,Session(s)例如二级缓存,连接池,事务处理系统集成等。
2)Session(org.hibernate.Session)
一个单线程,短暂的对象,在概念上为“工作单元” PoEAA建模。在JPA命名法中,Session由an代表EntityManager。
在幕后,Hibernate Session包装了一个JDBC java.sql.Connection并充当org.hibernate.Transaction实例的工厂。它维护应用程序域模型的一般“可重复读取”持久性上下文(第一级缓存)。
3)Transaction(org.hibernate.Transaction)
应用程序使用单线程,短期的对象来划分单个物理事务边界。 EntityTransaction是JPA的等价物,它们都充当抽象API来隔离正在使用的底层事务系统(JDBC或JTA)的应用程序。

4)Query 对象
Query 对象使用 SQL 或者 Hibernate 查询语言(HQL)字符串在数据库中来检索数据并创造对象。一个查询的实例被用于连结查询参数,限制由查询返回的结果数量,并最终执行查询。
5)Criteria 对象
Criteria 对象被用于创造和执行面向规则查询的对象来检索对象。

二,类型

1, org.hibernate.type.Type:                                                                                                                                  Hibernate类型既不是Java类型,也不是SQL数据类型。它提供了关于这两者的信息以及理解之间的编组。
当在Hibernate的讨论中遇到术语类型时,它可能会根据上下文来引用Java类型,JDBC类型或Hibernate类型。               Hibernate类型既不是Java类型,也不是SQL数据类型。它提供了关于这两者的信息以及理解之间的编组。当在Hibernate的讨论中遇到术语类型时,它可能会根据上下文来引用Java类型,JDBC类型或Hibernate类型。

2,hibernate中的类型与java中的数据类型对应关系:


。。。具体类型可参考官网,这些映射是由Hibernate中的一个叫做org.hibernate.type.BasicTypeRegistry的服务来管理的,它基本上维护着一个由名字键入的org.hibernate.type.BasicType(org.hibernate.type.Type 类型实现)实例的映射。这是前面表格中“BasicTypeRegistry key(s)”列的用途。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值