在Hibernate中也可以通过SQLQuery对象调用数据库的存储过程,但是要求存储过程必须返回一个结果集。

如在Oracle数据库的一个存储过程为:

CREATE OR REPLACE PROCEDURE selectGuestbookById
(sp_ref OUT SYS_REFCURSOR,inputId IN guestbook.id%type)AS

BEGIN

OPEN sp_ref FOR

select *from guestbook where id=inputId;

END selectGuestbookById;

调用的过程如下:

要通过Hibernate调用selectGuestbookById存储过程,还需要在Guestbook.hbm.xml文件中为其命名

<sql-query name = “com.kkoolerter.beans.Guestbook.getGuestbookBySP” callable="true">

<return alias="Guestbook" class = "com.kkoolerter.beans.Guestbook" />
 
  {call selectGuestbookById(?:inputId)}

</sql-query>

标签<sql-query>定义一个存储过程,name属性设置其名称,callable="true"表明这是一个存储过程<return>子标签设置返回记录封装的对象类型,{call selectGuestbookById(/:inputId)}是调用存储过程的代码。

调用存储过程的代码如下:

Query query = session.getNamedQuery(“com.kkoolerter.beans.Guestbook.getGuestbookBySP”);
query.setInteger("inputId",1);
Guestbook gb = (Guestbook)session.uniqueryResult();

转载于:https://blog.51cto.com/wujuxiang/403698

Hibernate HQL基础 调用数据库存储过程相关推荐

  1. java调用数据库存储过程的接口是_JAVA调用数据库存储过程

    JAVA调用数据库存储过程 2014/11/6 18:20:14  可怜的猫  程序员俱乐部  我要评论(0) 摘要:packagecom.ljq.test;importjava.sql.Connec ...

  2. SQLStoredProc调用数据库存储过程

    delphi 中用SQLStoredProc控件可调用数据存储过程. 下图为oracle 11g中写的存储过程IN表示输入参数,OUT表示输出参数,也可能用IN OUT表出输入输出参数.这里存储过程名 ...

  3. python调用数据库存储过程_python调用MySql存储过程

    环境: 1.mysql5.0 或者以上支持存储过程的版本 2.安装MySQL-python,目前支持到2.x 步骤: 一.数据库准备 1.建立表 CREATE TABLE `Account` ( `i ...

  4. java调用数据库存储过程_Java调用SQL Server的存储过程详解

    1使用不带参数的存储过程 1 {call procedure-name} 作为实例,在 SQL Server 2005 AdventureWorks 示例数据库中创建以下存储过程: CREATE PR ...

  5. python调用数据库存储过程_python连接mysql调用存储过程示例

    复制代码 代码如下: #!/usr/bin/env python # -*- coding: utf8 -*- import MySQLdb import time import os, sys, s ...

  6. java异步调用数据库存储过程详解,java中如何调用存储过程

    create procedure getsum @n int =0 as declare @sum int declare @i int set @sum=0 set @i=0 while @i 在线 ...

  7. Python 调用数据库存储过程

    一.Python 调用存储过程 以SQL Server为例,创建存储过程 proc_test,入参为城市名称,返回该城市下面的行政区: exec proc_test @city='南京市' 在Pyth ...

  8. Hibernate HQL基础 投影查询

    HQL中投影查询即查询一个持久化类的一个或多个属性值(不包括全部属性值),则需要使用HQL的select子句. 1.查询持久化对象的单一属性值    为查询持久化对象的一个属性值,在select子句后 ...

  9. Hibernate HQL基础 限定查询条件(这里面有各种条件查询)

    在HQL中可以使用表达式完成指定的运算或者作为限制查询结果的条件.如下表所示 |-----------------------------------------------------------| ...

最新文章

  1. vs2019键盘钩子_C#键盘按键监视
  2. Redisson 分布式锁实现分析(一)
  3. 在北京,一款App从无到有至少需要100万?
  4. 基于Vue+ElementUI的后台管理系统开发的总结
  5. Python 标准类库-Windows特殊服务之msvcrt
  6. 581. 最短无序连续子数组 golang
  7. iphone打字怎么换行_iPhone电池保养指南
  8. 性能测试之JMeter测试结果写入Excel
  9. 【加法笔记系列】逻辑门、半加器、全加器、波纹进位加法器
  10. Win Form不能响应键盘事件
  11. 深度学习:GAN案例练习-minst手写数字
  12. CI框架之连接数据库
  13. “元宇宙”是什么?涂子沛:人可在数据空间“复活”
  14. 人类Humankind for Mac(历史战略游戏)
  15. 论文笔记—A Review of Visual-LiDAR Fusion based Simultaneous Localization and Mapping
  16. PMP——项目管理介绍
  17. LearnOpenGL-CN笔记(一)
  18. win10右键选中或双击docx、xlsx、ppt文件出现未响应情况
  19. 【个人小程序和企业小程序的区别】
  20. 三星正在研发智能戒指,智能戒指当然少不了Find My功能

热门文章

  1. 写给MongoDB开发者的50条建议Tip11
  2. Spring Boot + Shiro 集成
  3. 《实施Cisco统一通信管理器(CIPT1)》一2.8 复习题
  4. 关于mysql启动错误
  5. MyISAM 和 InnoDB 讲解
  6. 管理表空间和数据文件——维护表空间——设置默认表空间和删除表空间和删除数据文件盒临时文件...
  7. DedeCms织梦彩色标签云(tag)随机颜色和字体大小
  8. Sql server 数据库备份、恢复等
  9. JavaScript打包与解包工具
  10. 第十三天-迭代器、三元表达、字典生成式、生成器、递归