Hibernate内部分装的技术:JDBC(Java Data Base Connectivity), JTA(Java Transaction API) , JNDI(Java Naming and Directory Interface)
Hibernate 提供的api
访问数据库的操作的接口:
	Session	Transaction	Query	Criteria
用于配置hibernate的接口:	Configuration
回调接口,是应用程序接收hibernate内部发生的事件,并作出相应的回应
	Interceptor		Lifecycle	Validatable
用于扩展hibernate功能的接口
	UserType		CompositeUserType		IdentifierGenerator

Hibernate 的核心接口:

  

Configuration:
作用:配置Hibernate,创建SessionFactory
特点:根启动
	SessionFactory:
		作用:初始化Hibernate , 创建Session, 充当数据存储源的代理
		特点:一个SessionFactory对应一个数据存储资源。
			 线程安全,这意味着它的同一个实例可以被应用到不同的线程
			 它是重量级的,因为它需要一个很大的缓存,来存放预定义的SQL语句以及映射元数据。(这个缓存被称为Hibernate的第二级缓存)
	Session:
		作用:负责增、删、改、查和加载
		特点:线程不安全--------设计软件架构的时候应避免多线程共享
			 是轻量级的----创建和销毁不需要消耗太多资源
		描述:Session 也被称为持久化管理器几乎提供了和持久化相关的全部操作,每个Session实例有一个自己缓存,成为Hibernate 的第一级缓存。它存放当前工作单元加载的对象。
	Transaction:
		作用:管理事务
	Query和Criteria
		作用:数据库查询
		描述:这两个接口主要用于向数据库查询对象,并控制执行查询的过程

Hibernate的配置:
一、	基本配置
a)	在Hibernate的软件包中提供了hibernate.properties文件中包含了有关配置数据库信息的所有代码
二、	类的持久化----持久化的类必须符合JavaBean的规范:
      私有属性,
    get、set方法,空构造------------Hibernate通过反射实现实例化
    	注意:Hibernate并不要求持久化类必须实现java.io.Serializable接口。但是对于采用分布式Java应用,当Java对象在不同的进程节点之间传输时,这个对象所属的类必须实现Serializable接口。此外,在Java Web应用中,如果希望对HttpSession中的Java对象进行持久化,那么这个Java对象所属的类也必须实现Serializable接口。

  待续............

Hibernate 开发流程的更多相关文章

  1. hibernate开发流程

    开发流程,注意:每个hibernate版本在集成的时候是不太一样的.本次使用的是hibernate-distribution-3.6.10.Final-dist 一.开发流程 1)在数据库中创建表,代 ...

  2. 一。Hibernate 开发流程

    一.hibernate和mybatis都是orm产品1.orm:object-realation-mapping对象关系映射 二.开发步骤1.导入相关jar 包括hibernate和oracle的驱动 ...

  3. Hibernate的基本开发流程

    一.Hibernate开发的基本流程 二.Hibernate开发的环境搭建 1.引入Hibernate核心包以及Hibernate依赖包即可.可以在Hibernate目录下的\lib\required ...

  4. Hibernate工作流程

    Hibernate创建步骤 (五大核心接口:Configuration/SessionFactory/Session/Transaction/Query) 1.新建工程,导入需要的jar包. 2.利用 ...

  5. 一 Struts2 开发流程

    SSH与SSM简介SSM:Spring+SpringMVC+MybatisSSH:Struts2+Hibernate+SpringStruts2:是侧重于控制层的框架Hibernate:是一个ORM( ...

  6. mybatis与hibernate运行流程比较

    hibernate长时间没用,感觉生疏了,正好借这篇文章整合下知识,顺便复习比较下两种框架. 概述: Mybatis和hibernate不同,它不完全是一个ORM框架,因为MyBatis需要程序员自己 ...

  7. Spring详细基本开发流程

    LOGO 文章已托管到GitHub,大家可以去GitHub查看阅读,欢迎老板们前来Star! 搜索关注微信公众号 码出Offer 领取各种学习资料! 一.Spring概述 1.1 Web开发中的一些问 ...

  8. Linux下服务器端开发流程及相关工具介绍(C++)

    去年刚毕业来公司后,做为新人,发现很多东西都没有文档,各种工具和地址都是口口相传的,而且很多时候都是不知道有哪些工具可以使用,所以当时就想把自己接触到的这些东西记录下来,为后来者提供参考,相当于一个路 ...

  9. 小谈Scrum敏捷开发流程

    一晃眼,有两年没有写博客了,回顾前两年,各种奔波,各种忙碌,也有不少的收获.从今天开始,我要把这些收获都分享在这里. 其实这两年,对我影响最大的是开发流程.总所周知,一个好的开发流程,对于项目的进行, ...

随机推荐

  1. ExtJs 之 ComboBox级联使用

    刚接触ExtJs不到一周,项目使用ExtJs框架,有个版块用到了combobox的级联(两级),遇到了一系列的问题,两天来一直查API.网络资料,终于解决了. 先列出遇到的一系列问题(也许你也遇到过! ...

  2. MongoDB aggregate 运用篇 个人总结

    最近一直在用mongodb,有时候会需要用到统计,在网上查了一些资料,最适合用的就是用aggregate,以下介绍一下自己运用的心得.. 别人写过的我就不过多描述了,大家一搜能搜索到N多一样的,我写一 ...

  3. java 创建线程的三种方法Callable,Runnable,Thread比较及用法

    转自:http://www.chinaitlab.com/Java/line/942440.html 编写多线程程序是为了实现多任务的并发执行,从而能够更好地与用户交互.一般有三种方法,Thread, ...

  4. IOS开发之画图形

    1 画线 2 画线第二个方法  相对方法1简洁 3 矩形 4 圆 5 弧线 6画文字(略) 7 画图片(略)

  5. 总结4点对学习Linux有帮助的建议(纯干货)

    学习需要足够的毅力和耐心 有些人把Linux运维看作一项冗长而枯燥的工作:有些人把linux运维看作一项得力的工具.如果是前者建议还是改变一下认识,不然不建议入门这行.毕竟linux运维工作是对人的毅 ...

  6. 查询数据库表大小sql

    SELECT a.name, b.rowsFROM sysobjects AS a INNER JOIN sysindexes AS b ON a.id = b.idWHERE (a.type = ' ...

  7. java 排序

    class Employee { private String name; private String id; private String salary; public static void m ...

  8. Trie树-字典查找

    描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进. 这一天,他们遇到了一本词典,于是小Hi就向小Ho提出了那个经典的问题: ...

  9. 动态加载jQuery

    success: function(data){ for(var i in data){ $('.x-details>ul:eq(0)').append("<li>&quo ...

  10. runtime学习实战一:类的属性进行归档解档

    #import <Foundation/Foundation.h> @interface PYPerson : NSObject @property (nonatomic, assign) ...