- 浏览: 228532 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
yjz毕竟是云:
总结的不错!
字符流与字节流的区别 -
yiqing:
不错 有帮助
HTTP Basic Authentication认证 -
assertme:
a8350020 写道第一种方法的线程池其实是没有意义的Fut ...
线程返回值的方式介绍 -
a8350020:
第一种方法的线程池其实是没有意义的Future.get()会阻 ...
线程返回值的方式介绍 -
endual:
一个上午都无法配置好的我的eclipse使用svn 哎。。。
总结一下SVN的用法
public class FlushedOpenSessionInViewFilter extends OpenSessionInViewFilter { protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { logger.debug("FIX ME!!!access FlushedOpenSessionInViewFilter"); SessionFactory sessionFactory = lookupSessionFactory(request); Session session = null; boolean participate = false; if (isSingleSession()) { // single session mode logger.debug("FIX ME!!!Single Hibernate Session"); if (TransactionSynchronizationManager.hasResource(sessionFactory)) { // Do not modify the Session: just set the participate flag. try { logger.debug("FIX ME!!!begin unbind sessionFactory"); TransactionSynchronizationManager .unbindResource(sessionFactory); logger.debug("FIX ME!!!end unbind sessionFactory"); if (TransactionSynchronizationManager.hasResource(lookupDataSource())) { logger.debug("FIX ME!!!begin unbind DataSource"); TransactionSynchronizationManager.unbindResource(lookupDataSource()); logger.debug("FIX ME!!!end unbind DataSource"); } logger.debug("FIX ME!!!begin close hibernate session"); closeSession(session, sessionFactory); logger.debug("FIX ME!!!end close hibernate session"); } catch (Exception e) { logger.error("FIX ME!!!unbind sessionFactory error",e); } } logger.debug("FIX ME!!!begin opening single Hibernate session"); session = getSession(sessionFactory); logger.debug("FIX ME!!!end opening single Hibernate session"); if (!TransactionSynchronizationManager.hasResource(sessionFactory)){ logger.debug("FIX ME!!!begin binding session"); TransactionSynchronizationManager.bindResource(sessionFactory, new SessionHolder(session)); logger.debug("FIX ME!!!end binding session"); } } else { // deferred close mode logger.debug("FIX ME!!!not single hibernate session"); if (SessionFactoryUtils.isDeferredCloseActive(sessionFactory)) { // Do not modify deferred close: just set the participate flag. participate = true; } else { SessionFactoryUtils.initDeferredClose(sessionFactory); } } try { logger.debug("FIX ME!!!Now filter in FlushedOpenSessionInViewFilter"); filterChain.doFilter(request, response); logger.debug("FIX ME!!!FlushedOpenSessionInViewFilter filter OK! "); } catch (Exception e) { logger.error("FIX ME!!!FlushedOpenSessionInViewFilter error",e); }finally { logger.debug("FIX ME!!!FlushedOpenSessionInViewFilter clean session "); if (!participate) { if (isSingleSession()) { // single session mode try { logger.debug("FIX ME!!!unbind sessionFactory in OpenSessionInViewFilter"); TransactionSynchronizationManager .unbindResource(sessionFactory); /*if (TransactionSynchronizationManager.hasResource(lookupDataSource())) { logger.debug("FIX ME!!!Unbind DataSource in OpenSessionInViewFilter"); TransactionSynchronizationManager.unbindResource(lookupDataSource()); }*/ logger.debug("FIX ME!!!Closing single Hibernate session in OpenSessionInViewFilter"); closeSession(session, sessionFactory); } catch (Exception e) { logger.debug("FIX ME!!!unbind sessionFactory error",e); } } else { // deferred close mode SessionFactoryUtils.processDeferredClose(sessionFactory); } } logger.debug("FIX ME!!!FlushedOpenSessionInViewFilter END "); } } protected void closeSession(Session arg0, SessionFactory arg1) { arg0.flush(); super.closeSession(arg0, arg1); } protected DataSource lookupDataSource() { String dataSourceBeanName = "dataSource"; WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext()); return (DataSource) wac.getBean(dataSourceBeanName, DataSource.class); } }
<filter>
<filter-name>hibernateFilter</filter-name> <filter-class> cn.com.superv.netmessage.util.FlushedOpenSessionInViewFilter </filter-class> </filter> <filter-mapping> <filter-name>hibernateFilter</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping> <filter-mapping> <filter-name>hibernateFilter</filter-name> <url-pattern>/dwr/*</url-pattern> </filter-mapping>
发表评论
-
转载 HashMap实现分析
2011-08-29 00:30 852** *@author annegu *@da ... -
Index Full Scan vs Index Fast Full Scan
2011-08-25 15:24 936Index Full Scan vs Index Fas ... -
oracle语句优化
2011-08-25 13:52 946Dear All 系统里有下面的语句,其中MDN是 ... -
转 读写分离
2011-08-23 23:51 1258随着一个网站的业务 ... -
拦截器与过滤器
2011-08-21 22:36 1021很多人都了解过滤器也听说过拦截器,但是要是区分它们的不同 ... -
sql写法的注意事项
2011-08-20 23:20 955基本的Sql编写注意事 ... -
字符流与字节流的区别
2011-08-20 22:50 12571 推荐 流是一个有序的字节序列,可作为一个输 ... -
SOCKET 与 HTTP
2011-08-20 22:32 11204.1 SOCKET与TCP/IP 关系 Sock ... -
tomcat中的几点配置说明
2011-08-19 22:20 9571. 如何加大tomcat连接数 在tomcat配置文 ... -
关于struts1和struts2及webork的单例和多实例
2011-08-18 23:31 850老是看到不会的问题就像转过来,记录下来,以后好看,一定 ... -
线程池的原理和连接池的原理
2011-08-18 23:18 813线程池的原理: ... -
非常好的Spring源码分析链接
2011-08-18 23:06 845http://www.ibm.com/developerwor ... -
oralce sql监控
2011-06-23 16:48 958emctl start dbconsole访问地址为:http ... -
Linux系统 学习
2011-05-31 15:33 874%mem 内存使用率 virt ... -
如何重新配置Oracle的EM Database Control
2011-05-30 17:59 892如何重新配置Oracle的 ... -
流控 demo
2011-05-05 23:05 836http://www.iteye.com/topic/19 ... -
基础VI命令学习
2011-04-21 14:13 798i编辑器是所有Unix及Linux系统下标准的编辑器,它 ... -
查看连接池的配置
2011-03-30 16:51 1059<servlet> <serv ... -
保留一些 电信方面知识的链接
2011-03-21 14:46 831保留一些 电信方面知识的链接 写道 http://ww ... -
关于移动方面的基础业务知识(待续)
2011-03-21 14:19 946UA:用户代理(User Agent) ...
相关推荐
### Hibernate可选配置详解 #### 一、Hibernate配置项概览 Hibernate作为一款优秀的Java持久层框架,提供了丰富的配置选项,以适应不同场景下的需求。本文档将详细解析Hibernate的各种可选配置,帮助开发者深入...
【Spring+Struts+Hibernate整合配置方案】 Spring、Struts和Hibernate是Java Web开发中三大核心框架,它们各自负责不同的职责:Spring作为依赖注入容器和面向切面编程(AOP)框架,提供应用的结构和事务管理;Struts...
3. 配置简化:Spring可以统一管理Hibernate的SessionFactory和Session,简化配置文件。 4. AOP集成:Spring的AOP可以与Hibernate的事务管理结合,提供更灵活的事务策略。 四、整合步骤 1. 引入依赖:在项目中添加...
这些配置项指定了默认的数据库模式和目录,便于统一指定表的位置。 5. **`hibernate.session_factory_name`**: SessionFactory的JNDI名称。 ```properties hibernate.session_factory_name=jndi/composite/name ...
- 在`src`目录下新建一个名为`org.superman.ssh.action`的包,用于存放所有的Action类,并创建BaseAction作为所有具体Action类的基类,用于统一管理Session、Request等对象。 ##### 第二部分:Struts2与Spring进行...
8. **jta-1.1.jar**:Java Transaction API(JTA)是Java平台的一部分,用于处理分布式事务,Hibernate支持JTA以实现事务管理。 9. **slf4j-nop-1.5.2.jar**:SLF4J的一个实现,称为“NOP”(无操作),在没有具体...
1. Hibernate支持编程式事务管理和声明式事务管理,可以配合Spring等框架实现事务的统一管理。 七、Annotation使用 1. Annotation配置比XML配置更简洁,直接在实体类上定义属性,无需编写额外的映射文件。 2. 使用...
DTD的存在确保了所有使用Hibernate的开发者遵循统一的配置标准,从而提高了代码的可读性和可维护性。 再来说说`hibernate-mapping-3.0.dtd`,它是Hibernate映射文件的DTD,主要用于定义如何将Java类映射到数据库表...
除了上述的jar包和配置文件外,学习Hibernate还需要理解其主要概念,如Session、Transaction、Query、Criteria API等。提供的学习PPT可能涵盖这些内容,帮助初学者快速掌握Hibernate的基本用法和最佳实践。 总之,...
### Hibernate原理与配置快速入门知识点解析 #### 一、Hibernate简介 - **概念**:Hibernate是一种面向Java的应用框架,主要用于简化数据库操作,提供了一种对象关系映射(Object Relational Mapping, ORM)的方式...
5. 配置并初始化Hibernate,例如使用Spring框架进行管理。 六、 示例 ```java public interface UserRepository extends JpaRepository, Long> { User findByUsername(String username); } @Service public class...
- **Spring框架与Hibernate的整合**: Spring提供了一种简单的机制来管理和配置Hibernate。 - **优点**: - 事务管理统一。 - 自动化Bean装配。 - 方便的异常转换。 #### 十七、总结 本书不仅介绍了Hibernate的...
SLF4J(Simple Logging Facade for Java)是一个日志门面,它为各种日志API提供一个简单统一的接口,使得最终的用户能够在部署的时候配置自己希望的日志框架。 4. **DOM4J**:DOM4J是一个强大的Java XML API,它...
Spring还集成了其他框架,包括Struts2和Hibernate,提供了统一的事务管理策略,使得在多个框架间协调工作变得更加简单。 在SSH整合过程中,你需要以下关键的jar包: 1. **Struts2** 相关的jar:包括`struts2-core....
例如,`org.hibernate.Session` 类是与数据库交互的基本接口,`org.hibernate.cfg.Configuration` 类用于配置 Hibernate 实例,而 `org.hibernate.query.Query` 和 `org.hibernate Criteria` 接口则用于执行 HQL...
Spring通过透明地管理Hibernate的Session,确保事务的正确性。这种模式被称为JPA(Java Persistence API)的“容器管理持久化”(CMT)。 2. **SessionFactory和Session:**SessionFactory是线程安全的,用于创建...
声明式事务管理则是通过在配置文件中声明事务规则,使用 AOP 切面进行事务控制,适用于大部分情况,因为它可以实现事务的统一管理和隔离。 Spring 和 Hibernate 整合的关键步骤包括: 1. 添加 Spring 和 Hibernate ...
2. **事务管理**:Spring提供了声明式事务管理,可以无缝集成到Hibernate的Session中,使得事务处理更加简单、统一。 3. **DAO(Data Access Object)抽象**:Spring的HibernateTemplate和HibernateDaoSupport为...
SessionFactory是配置和初始化的Hibernate环境,而Session是与数据库交互的主要接口,它维护了对象的状态和缓存。在Hibernate中,事务通常是通过Session对象的Transaction接口进行管理的。当开始一个事务(`begin...