`
charles0731
  • 浏览: 21988 次
  • 性别: Icon_minigender_1
  • 来自: 山东省
文章分类
社区版块
存档分类
最新评论

Spring 在Hibernate上实现的Template-callback机制上提供有

阅读更多
Spring 在Hibernate上实现的Template-callback机制上提供有 org.springframework.orm.hibernate3.HibernateTemplate类别与 org.springframework.orm.hibernate3.HibernateCallback介面,一个使用的例子如下:
HibernateTemplate hibernateTemplate =new HibernateTemplate(sessionFactory);
...
hibernateTemplate.execute(

  new HibernateCallback() {
    public Object doInHibernate(Session session) throws HibernateException {
        return session.load(User.class);
    }
  }

);

在HibernateTemplate上也提供有数个方便的方法,在呼叫时为您自动建立HibernateCallback物件,例如get()、save、delete()等方法,您可以改写 SessionFactory 注入的UserDAO类别,使用HibernateTemplate来简化程式的撰写:

    * UserDAO.java

import org.hibernate.SessionFactory;
import org.springframework.orm.hibernate3.HibernateTemplate;

public class UserDAO implements IUserDAO {
    private HibernateTemplate hibernateTemplate;

    public void setSessionFactory(SessionFactory sessionFactory) {
        hibernateTemplate = new HibernateTemplate(sessionFactory);
    }
  
    public void insert(User user) {
        hibernateTemplate.save(user);
    }

    public User find(Integer id) {
        User user = (User) hibernateTemplate.get(User.class, id);
        return user;
    }
}


其它的档案并不需要修改,执行的结果也是相同的,您必须在Classpath中加入spring-orm.jar档案才可以执行。

您可以继承org.springframework.orm.hibernate3.support.HibernateDaoSupport类别来撰写 UserDAO类别,这可以帮您省去一些管理SessionFactory、HibernateTemplate资源的工作,您只要注入 SessionFactory的实例就可以了,例如将上面的UserDAO替代为以下的内容,则程式也是可以执行:

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

public class UserDAO extends HibernateDaoSupport implements IUserDAO {

    //没有HibernateTemplate的定义等操作了,在父类中已经完成
    public void insert(User user) {
        getHibernateTemplate().save(user);
    }



    public User find(Integer id) {
        User user = (User) getHibernateTemplate().get(User.class, id);
        return user;
    }
}


http://blog.sina.com.cn/s/blog_3ff3946a01009l70.html
分享到:
评论

相关推荐

    前端开源库-request-idle-callback

    通过引入这个库,开发者可以确保在各种浏览器上都能使用`requestIdleCallback`。此外,这个库可能还包含了一些额外的功能和优化,比如错误处理、更好的兼容性检测和调度策略等。 在实际项目中,`...

    Spring源码缺失的spring-cglib-repack-3.2.6.jar和spring-objenesis-repack-2.6.jar

    CGlib的核心组件包括Enhancer、Callback和MethodInterceptor等,它们协同工作,使得Spring可以在不修改原有代码的情况下,实现动态代理和增强功能。 **Objenesis** Objenesis是一个轻量级库,用于在Java中创建对象...

    PyPI 官网下载 | pl-minio-callback-1.0.4.tar.gz

    《PyPI官网下载 | pl-minio-callback-1.0.4.tar.gz——Python库解析》 在Python的生态系统中,PyPI(Python Package Index)是最重要的资源库,它为开发者提供了一个平台来分享和发现Python软件包。本文将详细探讨...

    前端开源库-gulp-callback

    `gulp-callback`库的出现,就是为了解决这个问题,它提供了一种更优雅的方式来处理Gulp任务间的异步回调。 `gulp-callback`的核心功能是通过装饰Gulp任务函数,使其能够接收一个回调参数,这样就可以在任务完成后...

    CallbackURLKit:快速实现x-callback-url(应用间通信)

    CallbackURLKit-应用间通信 开始将URL方案集成到应用程序中,为什么不符合。 CallbackURLKit. register ( action : " play " ) { parameters, ......导入CallbackURLKit后,您可以在代码中的任何位置调用

    详解protobuf-c之在C语言中如何使用repeated生成数组和字符串(包含配置pb-callback-t)

    总结来说,protobuf-c在C语言中处理`repeated`字段时,提供了`pb_callback_t`这个机制,以适应动态大小的数据需求。理解并熟练运用`pb_callback_t`,可以让你更灵活地处理序列化和反序列化的复杂场景。通过编写...

    Ansible-ansible-callback-grafana-annotations.zip

    Ansible-ansible-callback-grafana-annotations.zip,执行剧本时自动在grafana中发布注释!不推荐:这个插件是Ansible 2.6版的一部分。修补应在那里进行。,ansible是一个简单而强大的自动化引擎。它用于帮助配置管理...

    Trans-callback-demo.tar.gz

    本文将深入探讨标题"Trans-callback-demo.tar.gz"所涉及的回调概念以及如何在C与C++中实现回调,并结合描述中的例子进行详细说明。 首先,我们来理解一下什么是回调。回调是一种编程技术,它允许我们将一个函数(或...

    evernote-ios-x-callback-url:印象笔记 iOS 应用程序的 x-callback-url 支持

    Evernote iOS x-callback-url 支持 Evernote iOS 应用从 7.5 版开始支持 x-callback-url。 一些应用程序已经在使用这种集成,例如和 。 这是的示例 写了很棒的关于 Evernote iOS 中的 x-callback-url 支持以及我们...

    电话回拨技术--CallBack

    系统会自动回拨用户电话,并在接通后连接到用户指定的通话对象,从而实现了长途通话的IP化,显著降低了费用。 电话远程回拨通话系统通常包括三个主要组成部分: 1. 电话回拨业务控制子系统:这是Callback服务的...

    network-idle-callback:类似于requestIdleCallback,但用于检测网络空闲

    networkIdleCallback工作方式类似于 ,它会在当前选项卡中的网络活动空闲时检测并通知您。 它可用于加载分析等低优先级资源,或用于预加载将来所需的资产。 安装 npm install network-idle-callback 用法 设置 ...

    springboot基于spring-retry实现重试机制

    Spring Retry 提供了一个 `@Retryable` 注解,可以标记在方法上,表示当该方法抛出异常时应进行重试。同时,Spring Retry 还提供了 `@Recover` 注解,用于定义在所有重试失败后的回退逻辑。这两个注解配合使用,可以...

    example-callback.php

    example_callback.phpexample_callback.phpexample_callback.phpexample_callback.phpexample_callback.phpexample_callback.phpexample_callback.phpexample_callback.phpexample_callback.phpexample_callback....

    前端大厂最新面试题-callback.docx

    回调函数在前端开发中有很多应用,如异步编程、事件处理、数据加载等。例如,在使用 jQuery 的 AJAX 请求时,我们可以使用回调函数来处理服务器端的响应数据。 六、回调函数的优点 使用回调函数可以使我们的代码...

    前端开源库-callback2promise

    传统的异步处理方式是回调函数(callback),但随着JavaScript ES6标准的普及,Promise对象已经成为处理异步操作的标准方式,它提供了更好的错误处理机制和更优雅的代码组织结构。"callback2promise"是一个开源库,...

    dom-request-callback:使用普通的旧回调处理 DOMRequest 对象

    dom-request-callback 允许您使用普通的旧回调处理 Firefox 的对象。 安装 $ npm install dom-request-callback 用法 var handle = require ( 'dom-request-callback' ) var request = navigator . mozApps . ...

    NX二次开发UF-CLONE-remove-ntfy-callback 函数介绍

    NX二次开发UF_CLONE_remove_ntfy_callback 函数介绍,Ufun提供了一系列丰富的 API 函数,可以帮助用户实现自动化、定制化和扩展 NX 软件的功能。无论您是从事机械设计、制造、模具设计、逆向工程、CAE 分析等领域的...

    NX二次开发UF-CLONE-remove-cvt-callback 函数介绍

    NX二次开发UF_CLONE_remove_cvt_callback 函数介绍,Ufun提供了一系列丰富的 API 函数,可以帮助用户实现自动化、定制化和扩展 NX 软件的功能。无论您是从事机械设计、制造、模具设计、逆向工程、CAE 分析等领域的...

    NX二次开发UF-CLONE-register-ntfy-callback 函数介绍

    NX二次开发UF_CLONE_register_ntfy_callback 函数介绍,Ufun提供了一系列丰富的 API 函数,可以帮助用户实现自动化、定制化和扩展 NX 软件的功能。无论您是从事机械设计、制造、模具设计、逆向工程、CAE 分析等领域...

    NX二次开发UF-CLONE-register-cvt-callback 函数介绍

    NX二次开发UF_CLONE_register_cvt_callback 函数介绍,Ufun提供了一系列丰富的 API 函数,可以帮助用户实现自动化、定制化和扩展 NX 软件的功能。无论您是从事机械设计、制造、模具设计、逆向工程、CAE 分析等领域的...

Global site tag (gtag.js) - Google Analytics