`

Hibernate 调用存储过程 练习2

 
阅读更多
public class TestDaoImpl extends HibernateDaoSupport implements TestDao {

public String hibernateCallPro() {
		return (String)this.getJdbcTemplate().execute(new CallableStatementCreator(){
			public CallableStatement createCallableStatement(Connection conn)
					throws SQLException {
				CallableStatement stmt = conn.prepareCall("{ call TEST_XJT(?,?,?)}");
				int i = 1;

				stmt.setInt(i++, 11);
				stmt.setString(i++, "B1");
				stmt.registerOutParameter(i++, Types.VARCHAR);
				return stmt;
			}
			
		}, new CallableStatementCallback(){
			public Object doInCallableStatement(CallableStatement stmt)
					throws SQLException, DataAccessException {
				 stmt.execute();
				 String result = stmt.getString(3);
				return result;
			}
			
		});
	}

public static void main(String[] args) {

		ApplicationContext context = new FileSystemXmlApplicationContext(
				"/WebContent/WEB-INF/applicationContext.xml");
		TestDao test = (TestDao) context.getBean("testDao");// 括号写需要测试的bean id;

		System.out.println(test.hibernateCallPro());
	}


}

 

CREATE OR REPLACE PROCEDURE TEST_XJT(P0 IN NUMBER,
                                     P1 IN VARCHAR2,
                                     P2 OUT VARCHAR2) IS

  STR   VARCHAR2(100);
  P_VAL VARCHAR2(100) := '12';
BEGIN

  SELECT T.C2 INTO STR FROM TEST2 T WHERE T.C2 = P1;
  IF P_VAL IS NOT NULL THEN
    DBMS_OUTPUT.put_line('P_VAL 不为空');
  END IF;

  INSERT INTO TEST2 (C1, C2, C3) VALUES (P0, 'S', SYSDATE);
  COMMIT;
  P2 := 'success';
EXCEPTION
  WHEN no_data_found THEN
    DBMS_OUTPUT.put_line('没有找到数据异常');
    P2 := 'error';
    ROLLBACK;
  WHEN OTHERS THEN
    DBMS_OUTPUT.put_line('异常');
    P2 := 'error';
    ROLLBACK;
END TEST_XJT;

 

分享到:
评论

相关推荐

    Hibernate练习

    Hibernate练习项目是学习ORM框架的好起点,通过实际操作,你可以掌握如何配置Hibernate,创建实体类,定义映射,以及如何使用Session进行数据操作。这个例子将帮助你理解Hibernate如何简化数据库编程,提高开发效率...

    easyui+springMVC+hibernate练习

    本项目名为“easyui+springMVC+hibernate练习”,旨在通过整合这三大技术,实现一个实用的课程表功能。下面将详细阐述这三个技术及其在项目中的作用。 1. EasyUI: EasyUI是一款基于jQuery的前端框架,它提供了丰富...

    Hibernate练习题

    - 如果希望Hibernate级联保存集合中的对象,cascade属性应设为'save-update',以便在保存主对象时自动保存集合中的对象。 11. Hibernate检索方式: - 有四种主要检索方式:HQL(Hibernate查询语言)、Criteria ...

    hibernate 练习

    - **更新(Update)**: 更新对象后,调用 `Session` 的 `update()` 方法将变更保存回数据库。 - **删除(Delete)**: 使用 `delete()` 方法移除对象。 6. **级联操作和关联映射** 通过 `@ManyToOne`, `@...

    Struts1+Spring3.0+Hibernate3.3 练习登录注册的例子

    在登录注册中,Hibernate会处理用户信息的存储和检索,将Java对象与数据库表进行映射,减少了对SQL的直接操作,提高了开发效率。 在SSH1项目中,你可能会看到以下组成部分: 1. **Action类**:这是Struts1的核心,...

    struts hibernate 练习

    在"struts hibernate 练习"这个项目中,初学者可以学习如何结合这两个框架来实现一个简单的Web应用。首先,让我们详细了解一下这两个框架的核心概念。 **Struts框架:** 1. **Action类**:是业务逻辑处理的入口点,...

    hibernate 双向多对多关联映射练习

    2. **中间表的自动创建**:Hibernate默认会根据`@ManyToMany`和`@JoinTable`的配置自动生成中间表,但也可以手动指定表结构。 3. **关联的管理**:在业务逻辑中,我们需要添加或删除关联。例如,当一个学生选修一门...

    Springmvc+hibernate+mysql练手项目

    该项目是一个使用Springmvc、Hibernate和MySQL数据库构建的实践练习,旨在帮助初学者理解和掌握Web应用程序开发中的关键框架和技术。下面将详细阐述这三个技术的核心概念及其在项目中的应用。 1. SpringMVC: ...

    Hibernate练习笔记

    【Hibernate实践探索】 在深入探讨Hibernate这一强大的Java对象关系映射(ORM)框架之前,我们需要先理解ORM的基本概念。ORM是将数据库中的表映射为Java对象,使得开发者可以使用面向对象的方式来操作数据库,简化...

    数据库与Hibernate教案

    在IT领域,数据库是存储和管理数据的核心工具,而Hibernate作为一款优秀的对象关系映射(ORM)框架,极大地简化了Java开发者与数据库之间的交互。本教案将深入探讨这两个重要概念及其相互关系,同时也涉及AJAX插件在...

    springMVC +mssql+Hibernate 非注解练手

    MSSQL支持SQL标准,包括T-SQL(Transact-SQL)扩展,用于执行数据库操作、创建存储过程和触发器。在与SpringMVC或Hibernate集成时,MSSQL通常作为后端数据存储,通过JDBC(Java Database Connectivity)接口进行通信...

    first_demo.rar_DEMO_struts2_struts2 hibernate_简历

    标题中的"first_demo.rar_...综合来看,这个DEMO项目为开发者提供了一个实战练习Struts2和Hibernate整合应用的机会,通过实现简历管理功能,可以帮助学习者深入理解这两个框架的协同工作方式,提升Web应用开发技能。

    Hibernate 简单的注册页面

    在这一过程中,我们将深入探讨Hibernate的核心概念和关键组件,以及如何将其应用于实际的Web开发中。 首先,Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发者用Java对象来操作数据库,简化了Java应用中...

    hibernate简单实例

    2. **配置Hibernate**: 创建`hibernate.cfg.xml`配置文件,定义数据库连接信息,包括URL、用户名、密码以及JDBC驱动。此外,还需要声明实体映射文件的位置。 3. **实体类创建**: 实体类是与数据库表对应的Java...

    hibernate3和struts2整合登录实列

    总之,“hibernate3和struts2整合登录实例”是一个典型的Java Web开发练习,它涉及到数据库操作、MVC架构、对象关系映射等多个核心概念。通过这个实例,开发者可以更好地理解和掌握这两款强大工具的协同工作方式,为...

    Spring+springmvc+hibernate 订餐系统

    2. 菜品模块:存储菜品信息,支持菜品的添加、删除和更新。 3. 订单模块:处理用户的订餐请求,创建、修改和取消订单。 4. 支付模块:处理支付流程,可能与第三方支付平台集成。 5. 配送模块:管理配送信息,包括...

    Struts2+hibernate3.2的源代码

    开发者通过这个练习来深化对Struts2和Hibernate的理解,同时也能帮助其他学习者更好地掌握这两个框架的结合使用。 首先,Struts2框架通过Action类、拦截器、配置文件等组件来控制应用程序的流程。Action类是业务...

    ssh模拟登陆练习

    SSH模拟登陆练习是一个针对初学者的宝贵资源,它涵盖了Java开发中的重要框架——Spring、Hibernate和Struts2.0的整合应用。这三个框架是企业级Java应用开发的常用技术栈,能够帮助开发者构建高效、可维护的Web应用...

    hibernate 个人学习笔记及代码

    2. 更新:调用Session的update()方法,Hibernate会根据对象的状态自动判断是更新还是插入。 3. 删除:使用Session的delete()方法删除对象,对应的数据库记录也会被移除。 4. 查询:通过Session的get()或load()方法...

    Hibernate入门

    在实践中,结合示例项目(如Hibernate-01)进行练习,将帮助你更好地掌握这个强大的ORM框架。在后续的学习中,深入理解实体关系映射、级联操作、双向关联、多对多关系、延迟加载等高级特性,将使你在实际开发中更加...

Global site tag (gtag.js) - Google Analytics