- 浏览: 3559521 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (1491)
- Hibernate (28)
- spring (37)
- struts2 (19)
- jsp (12)
- servlet (2)
- mysql (24)
- tomcat (3)
- weblogic (1)
- ajax (36)
- jquery (47)
- html (43)
- JS (32)
- ibatis (0)
- DWR (3)
- EXTJS (43)
- Linux (15)
- Maven (3)
- python (8)
- 其他 (8)
- JAVASE (6)
- java javase string (0)
- JAVA 语法 (3)
- juddiv3 (15)
- Mule (1)
- jquery easyui (2)
- mule esb (1)
- java (644)
- log4j (4)
- weka (12)
- android (257)
- web services (4)
- PHP (1)
- 算法 (18)
- 数据结构 算法 (7)
- 数据挖掘 (4)
- 期刊 (6)
- 面试 (5)
- C++ (1)
- 论文 (10)
- 工作 (1)
- 数据结构 (6)
- JAVA配置 (1)
- JAVA垃圾回收 (2)
- SVM (13)
- web st (1)
- jvm (7)
- weka libsvm (1)
- weka屈伟 (1)
- job (2)
- 排序 算法 面试 (3)
- spss (2)
- 搜索引擎 (6)
- java 爬虫 (6)
- 分布式 (1)
- data ming (1)
- eclipse (6)
- 正则表达式 (1)
- 分词器 (2)
- 张孝祥 (1)
- solr (3)
- nutch (1)
- 爬虫 (4)
- lucene (3)
- 狗日的腾讯 (1)
- 我的收藏网址 (13)
- 网络 (1)
- java 数据结构 (22)
- ACM (7)
- jboss (0)
- 大纸 (10)
- maven2 (0)
- elipse (0)
- SVN使用 (2)
- office (1)
- .net (14)
- extjs4 (2)
- zhaopin (0)
- C (2)
- spring mvc (5)
- JPA (9)
- iphone (3)
- css (3)
- 前端框架 (2)
- jui (1)
- dwz (1)
- joomla (1)
- im (1)
- web (2)
- 1 (0)
- 移动UI (1)
- java (1)
- jsoup (1)
- 管理模板 (2)
- javajava (1)
- kali (7)
- 单片机 (1)
- 嵌入式 (1)
- mybatis (2)
- layui (7)
- asp (12)
- asp.net (1)
- sql (1)
- c# (4)
- andorid (1)
- 地价 (1)
- yihuo (1)
- oracle (1)
最新评论
-
endual:
https://blog.csdn.net/chenxbxh2 ...
IE6 bug -
ice86rain:
你好,ES跑起来了吗?我的在tomcat启动时卡在这里Hibe ...
ES架构技术介绍 -
TopLongMan:
...
java public ,protect,friendly,private的方法权限(转) -
贝塔ZQ:
java实现操作word中的表格内容,用插件实现的话,可以试试 ...
java 读取 doc poi读取word中的表格(转) -
ysj570440569:
Maven多模块spring + springMVC + JP ...
Spring+SpringMVC+JPA
Session接口
Session接口对于Hibernate 开发人员来说是一个最重要的接口。然而在Hibernate中,实例化的Session是一个轻量级的类,创建和销毁它都不会占用很多资源。这在实际项目中确实很重要,因为在客户程序中,可能会不断地创建以及销毁Session对象,如果Session的开销太大,会给系统带来不良影响。但值得注意的是Session对象是非线程安全的,因此在你的设计中,最好是一个线程只创建一个Session对象。
在Hibernate的设计者的头脑中,他们将session看作介于数据连接与事务管理一种中间接口。我们可以将session想象成一个持久对象的缓冲区,Hibernate能检测到这些持久对象的改变,并及时刷新数据库。我们有时也称Session是一个持久层管理器,因为它包含这一些持久层相关的操作,诸如存储持久对象至数据库,以及从数据库从获得它们。请注意,Hibernate 的session不同于JSP应用中的HttpSession。当我们使用session这个术语时,我们指的是Hibernate中的session,而我们以后会将HttpSesion对象称为用户session。
SessionFactory 接口
这里用到了一个设计模式――工厂模式,用户程序从工厂类SessionFactory中取得Session的实例。
令你感到奇怪的是SessionFactory并不是轻量级的!实际上它的设计者的意图是让它能在整个应用中共享。典型地来说,一个项目通常只需要一个SessionFactory就够了,但是当你的项目要操作多个数据库时,那你必须为每个数据库指定一个SessionFactory。
SessionFactory在Hibernate中实际起到了一个缓冲区的作用,它缓冲了Hibernate自动生成的SQL语句和一些其它的映射数据,还缓冲了一些将来有可能重复利用的数据。
Configuration 接口
Configuration接口的作用是对Hibernate进行配置,以及对它进行启动。在Hibernate的启动过程中,Configuration类的实例首先定位映射文档的位置,读取这些配置,然后创建一个SessionFactory对象。
虽然Configuration接口在整个Hibernate项目中只扮演着一个很小的角色,但它是启动hibernate时你所遇到的每一个对象。
Transaction 接口
Transaction接口是一个可选的API,你可以选择不使用这个接口,取而代之的是Hibernate的设计者自己写的底层事务处理代码。 Transaction接口是对实际事务实现的一个抽象,这些实现包括JDBC的事务、JTA中的UserTransaction、甚至可以是CORBA事务。之所以这样设计是能让开发者能够使用一个统一事务的操作界面,使得自己的项目可以在不同的环境和容器之间方便地移值。
Query和Criteria接口
Query接口让你方便地对数据库及持久对象进行查询,它可以有两种表达方式:HQL语言或本地数据库的SQL语句。Query经常被用来绑定查询参数、限制查询记录数量,并最终执行查询操作。
Criteria接口与Query接口非常类似,它允许你创建并执行面向对象的标准化查询。
值得注意的是Query接口也是轻量级的,它不能在Session之外使用。
Callback 接口
当一些有用的事件发生时――例如持久对象的载入、存储、删除时,Callback接口会通知Hibernate去接收一个通知消息。一般而言,Callback接口在用户程序中并不是必须的,但你要在你的项目中创建审计日志时,你可能会用到它。
(以上文章并非原创,转自一论坛留言。祝原作者更好一层楼)
Session接口对于Hibernate 开发人员来说是一个最重要的接口。然而在Hibernate中,实例化的Session是一个轻量级的类,创建和销毁它都不会占用很多资源。这在实际项目中确实很重要,因为在客户程序中,可能会不断地创建以及销毁Session对象,如果Session的开销太大,会给系统带来不良影响。但值得注意的是Session对象是非线程安全的,因此在你的设计中,最好是一个线程只创建一个Session对象。
在Hibernate的设计者的头脑中,他们将session看作介于数据连接与事务管理一种中间接口。我们可以将session想象成一个持久对象的缓冲区,Hibernate能检测到这些持久对象的改变,并及时刷新数据库。我们有时也称Session是一个持久层管理器,因为它包含这一些持久层相关的操作,诸如存储持久对象至数据库,以及从数据库从获得它们。请注意,Hibernate 的session不同于JSP应用中的HttpSession。当我们使用session这个术语时,我们指的是Hibernate中的session,而我们以后会将HttpSesion对象称为用户session。
SessionFactory 接口
这里用到了一个设计模式――工厂模式,用户程序从工厂类SessionFactory中取得Session的实例。
令你感到奇怪的是SessionFactory并不是轻量级的!实际上它的设计者的意图是让它能在整个应用中共享。典型地来说,一个项目通常只需要一个SessionFactory就够了,但是当你的项目要操作多个数据库时,那你必须为每个数据库指定一个SessionFactory。
SessionFactory在Hibernate中实际起到了一个缓冲区的作用,它缓冲了Hibernate自动生成的SQL语句和一些其它的映射数据,还缓冲了一些将来有可能重复利用的数据。
Configuration 接口
Configuration接口的作用是对Hibernate进行配置,以及对它进行启动。在Hibernate的启动过程中,Configuration类的实例首先定位映射文档的位置,读取这些配置,然后创建一个SessionFactory对象。
虽然Configuration接口在整个Hibernate项目中只扮演着一个很小的角色,但它是启动hibernate时你所遇到的每一个对象。
Transaction 接口
Transaction接口是一个可选的API,你可以选择不使用这个接口,取而代之的是Hibernate的设计者自己写的底层事务处理代码。 Transaction接口是对实际事务实现的一个抽象,这些实现包括JDBC的事务、JTA中的UserTransaction、甚至可以是CORBA事务。之所以这样设计是能让开发者能够使用一个统一事务的操作界面,使得自己的项目可以在不同的环境和容器之间方便地移值。
Query和Criteria接口
Query接口让你方便地对数据库及持久对象进行查询,它可以有两种表达方式:HQL语言或本地数据库的SQL语句。Query经常被用来绑定查询参数、限制查询记录数量,并最终执行查询操作。
Criteria接口与Query接口非常类似,它允许你创建并执行面向对象的标准化查询。
值得注意的是Query接口也是轻量级的,它不能在Session之外使用。
Callback 接口
当一些有用的事件发生时――例如持久对象的载入、存储、删除时,Callback接口会通知Hibernate去接收一个通知消息。一般而言,Callback接口在用户程序中并不是必须的,但你要在你的项目中创建审计日志时,你可能会用到它。
(以上文章并非原创,转自一论坛留言。祝原作者更好一层楼)
发表评论
-
犯规犯规犯规
2015-09-18 16:45 1348http://bbs.hupu.com/4466597.htm ... -
快速掌握Hibernate中悲观锁和乐观锁
2012-10-19 21:33 1618快速掌握Hibernate ... -
Hibernate延迟加载机制
2012-10-19 21:22 1374Hibernate延迟加载 ... -
Hibernate 子类中不能用session 操作数据库
2012-08-28 14:46 1747Object obj = this.g ... -
hibernate3 下载网址
2012-08-28 12:53 1945我的天啊,居然找个hibernate下载的地址也找了半天 h ... -
师父告诉我诀窍
2012-08-23 16:53 1526<value>classpath*:com ... -
spring 整合 hibernate
2012-07-28 10:41 15011.闲话少说了,先看版本吧。 2.在看要导入的包吧: ... -
使用spring的hibernateTemplate的方法 (转)
2012-07-24 17:12 1543使用spr ... -
hibernate 增删改查
2012-07-24 00:07 1874mysql中库表News,字段如下 id | i ... -
hibernate的对象映射配置文件中属性的介绍和说明
2012-03-04 13:45 1698持久化对象之间一对一的关联关系是通过one-to-one 元 ... -
HIbernate主键生成策略详解 (转)
2012-03-04 13:39 1749HIberna ... -
hibernate 复习 单向一对一的实现
2012-03-03 15:38 1475hibernate中单向一对一实现有三种方式:主键关联, ... -
hibernate 复习--demo
2012-03-02 20:40 1560今天晚上,搞好了hibernate的demo了,明天开始就是搞 ... -
HibernateDaoSupport与JdbcDaoSupport
2011-12-30 07:38 17142011年11月07日 星期一 ... -
hibernage getcurrentsession
2011-12-28 18:56 1587org.hibernate.Hibe ... -
hibernate开发资料学习资料
2011-12-28 07:42 1548http://dev.21tx.com/java/struts ... -
hibernate one to many lazy 常见错误解决
2011-06-26 20:17 2614解释一个关于Hibernate l ... -
hibernate的增删改查
2011-06-25 22:03 1860package com.endual.test; impor ... -
frameset
2011-05-25 09:43 1092<a href=url target=_blank> ... -
Hibernate+Spring+Struts2+ExtJS开发CRUD功能
2011-05-17 08:56 4837http://blog.csdn.net/myloon/arc ...
相关推荐
总结来说,这篇博客文章可能探讨了在使用Hibernate时,通过SessionFactory().getCurrentSession()获取Session的技巧和注意事项,包括如何正确配置Spring事务管理、理解线程绑定的Session机制,以及如何利用源码和...
Session session = sessionFactory.openSession(); Transaction tx = session.beginTransaction(); MyEntity entity = new MyEntity(); // 设置属性... session.save(entity); tx.commit(); session.close(); ``` *...
- **缓存管理**: `SessionFactory`支持一级缓存(Session级别的缓存)和二级缓存(SessionFactory级别的全局缓存)。二级缓存可以通过插件如Ehcache实现,提高性能。 - **事务处理**: Hibernate提供了基于JTA或JDBC...
nosession模式并不意味着完全不使用Hibernate,而是尽量减少对Session的依赖,转而使用其他API,例如Query或Criteria API来执行数据库查询。 在实际的代码案例中,我们可以利用SessionFactory的openSession()方法来...
用于获得Session会话及关闭Session会话
在Java的Hibernate框架中,`SessionFactory` 和 `Session` 是两个非常重要的概念,它们是Hibernate持久化机制的核心组件。理解 `SessionFactory.getCurrentSession()` 和 `Session.openSession()` 的区别对于优化和...
### Open_Session_In_View详解 #### 一、背景与概念 在使用Hibernate进行对象持久化时,经常遇到的一个问题是关于懒加载(lazy loading)的处理。懒加载是一种优化技术,允许在真正需要某个关联对象的数据时才加载...
SessionFactory是Hibernate的核心组件,它负责创建Session对象,而Session则是与数据库交互的接口。 首先,我们需要在项目中添加Spring和Hibernate的依赖。Spring的jar包通常包括spring-context、spring-beans、...
【hibernate与Session详解】 Hibernate 是一个强大的Java对象关系映射(ORM)框架,它为开发者提供了在Java应用程序中操作数据库的强大工具。通过Hibernate,我们可以将数据库中的表与Java类进行映射,从而实现对...
针对sessionFactory没有出现的可能原因;
HibernateSessionFactory.java
在Java应用中,我们需要先初始化SessionFactory,然后通过SessionFactory来创建Session实例。 以下是如何手动获取Session的基本步骤: 1. **配置Hibernate**:在项目的资源目录下创建`hibernate.cfg.xml`配置文件...
`SessionFactory`是`Session`的工厂,负责创建和配置`Session`。`SessionFactory`一般在应用启动时创建并缓存,避免频繁创建和关闭带来的性能开销。 在开发中,使用Hibernate的`Session`和`Transaction`能够有效...
1. SessionFactory:这是Hibernate的核心工厂类,用于创建Session对象。它基于Hibernate的配置信息(如hibernate.cfg.xml)初始化,并在整个应用生命周期内保持单例模式。 2. HibernateTemplate:这是Spring提供的...