`
abin103
  • 浏览: 152936 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

hibiernate 调用oracle 存储过程

阅读更多
今天试了试 hibernate 调用存储过程
中间遇到了些问题,网上有很多,但是很多都是通过Session得到Connection 而后通过jdbc的方式调用存储过程,和hibernate 没有太大的关系,因此我把我的分享好
1.表结构只是举个例子
create table USERS
(
  ID       INTEGER not null,
  USERNAME VARCHAR2(20) not null,
  PASSWORD VARCHAR2(20) not null
)

2.存储过程定义好,我用了函数、用到了包
--head
create or replace package think is
   type result_cursor is ref cursor;
    function fselUser return result_cursor;
    function fselUser(na in varchar2) return result_cursor;
  end think;
--body   
   function fselUser
     return result_cursor is pcursor result_cursor;
     begin
      open pcursor for  select * from users;
     return pcursor;
  end fselUser; 

  function fselUser(na in varchar2) return result_cursor is pcursor result_cursor;
    sqlstr varchar(1000):='';
     begin
      sqlstr:='select * from users where users.username like ''%'||na||'%''';
      dbms_output.put_line(sqlstr);
      open pcursor for sqlstr;
      return pcursor;
   end fselUser;
end think;
3.XXX.hbm.xml的配置
  <hibernate-mapping package="dao">
    <class name="Users" table="USERS" schema="DING">
        <id name="id" type="java.lang.Long">
            <column name="ID" precision="22" scale="0" />
            <generator class="sequence">
             <param name="sequence">SEQ_USER_ID</param>
            </generator>
        </id>
        <property name="username" type="java.lang.String">
            <column name="USERNAME" length="20" not-null="true" />
        </property>
        <property name="password" type="java.lang.String">
            <column name="PASSWORD" length="20" not-null="true" />
        </property>
    </class>
    <sql-query callable="true" name="users">
    <return alias="users" class="Users">
    <return-property name="id" column="ID" />
    <return-property name="username" column="USERNAME" />
    <return-property name="password" column="PASSWORD" />
    </return>
    { ? = call think.fselUser(?) }
    </sql-query>

</hibernate-mapping>
4. 下面把调用说哈
   public List findUserByFunction(String str){
        Session  session= getHibernateTemplate().getSessionFactory().openSession();
    Query query=session.getNamedQuery("Users");
           query.setParameter(0, str);//索引从0开始的,设置参数
           List ll=query.list();
           session.close();
       return  ll;
   }
怎么使用就是你自己的事情了,以上代码仅做参考,有什么不对的地方还请指正,希望对你有所帮助
分享到:
评论

相关推荐

    Python使用cx_Oracle调用Oracle存储过程的方法示例

    本文实例讲述了Python使用cx_Oracle调用Oracle存储过程的方法。分享给大家供大家参考,具体如下: 这里主要测试在Python中通过cx_Oracle调用PL/SQL。 首先,在数据库端创建简单的存储过程。 create or replace ...

    java调用oracle存储过程返回结果集,Record,cursor参照.pdf

    本文介绍了Java调用Oracle存储过程返回结果集Record和Cursor的相关知识点,包括创建Type、PACKAGE和PROCEDURE,Java代码中调用存储过程,并获取结果集。这些知识点对深入了解Oracle存储过程和Java调用Oracle存储过程...

    springboot整合mybatis调用oracle存储过程

    本文将深入探讨如何在Spring Boot项目中整合MyBatis,实现调用Oracle存储过程并处理游标返回的数据。 首先,我们需要在Spring Boot项目中引入相关的依赖。在`pom.xml`文件中添加Oracle JDBC驱动(ojdbc66-oracle...

    springboot mybatis 动态调用oracle存储过程,通过存储过程名称,就能动态调用存储过程、java动态调用or

    能不能写个动态的业务,只输入存储过程名称,自动获取存储过程参数,并且参数的数据从前台传递过来...只根据输入不同的存储过程名称、参数内容,自动调用不同的存储过程。 已经使用在多个项目中 全开源项目 请放心下载

    C#中调用oracle存储过程返回数据集

    在C#中调用Oracle存储过程来返回数据集是一个常见的任务,这涉及到ADO.NET库的使用,特别是OracleClient组件。Oracle存储过程是数据库中的预编译SQL代码块,可以接收输入参数,执行复杂的业务逻辑,并返回结果。在C#...

    Spring JdbcTemplate调用Oracle存储过程实现CRUD

    对于 `P_EMP_SELECT` 存储过程,我们使用 `CallableStatementCallback` 对象调用存储过程,并将结果集处理到 `List` 集合中。 对于 `P_EMP_ADD` 存储过程,我们使用 `CallableStatementCallback` 对象调用存储过程...

    VFP调用ORACLE存储过程数据库接口程序.pdf

    总体设计思想是在Oracle服务器上建立用户所需的存储过程,用户在远端客户机上通过调用存储过程来获取所需数据,这样既不影响服务器的数据库运行,也实现了数据的自动转换。数据库接口程序的主要内容包括调用存储过程...

    Springboot调用Oracle存储过程的几种方式.docx

    在转换SSH项目到Spring Boot的过程中,遇到了由于连接池默认配置限制(默认连接数为10)导致的问题,即频繁调用存储过程后,数据库连接无法得到正确释放,从而引发项目崩溃。以下是对这三种调用方式的详细解释: 1....

    使用Spring的JdbcTemplate调用Oracle的存储过程

    使用Spring的JdbcTemplate调用Oracle的存储过程

    C#调用oracle方法(包括调用存储过程)

    ### C#调用Oracle方法(包括调用存储过程) 在.NET框架中,使用C#语言进行数据库操作是一项常见的任务。本文将详细介绍如何使用C#语言连接Oracle数据库,并演示如何调用Oracle存储过程,特别是带有输出参数的情况。...

    Delphi中调用oracle的存储过程返回数据集

    在 Delphi 中调用 Oracle 的存储过程返回数据集需要遵循一定的规则和格式,包括创建 Oracle 包和存储过程、使用 AdoConnection 和 AdoDataSet 组件连接到 Oracle 数据库、调用存储过程并返回数据集等步骤。

    java调用oracle存储过程或者函数

    调用Oracle函数的过程与调用存储过程类似,但创建CallableStatement时的SQL语句略有不同。由于函数会返回一个值,所以格式通常是`{? = call function_name(?, ?, ...)}`。在执行后,通过`CallableStatement....

    vb调用oracle存储过程

    在Visual Basic中,通过ADO (ActiveX Data Objects) 库可以实现对Oracle数据库的操作,包括调用存储过程。在给定的代码片段中,可以看到一个名为`AddTimePay`的子过程,它负责调用Oracle数据库中的存储过程`add_...

    利用windows任务计划调用oracle存储过程

    结合Oracle数据库,我们可以利用任务计划程序调用Oracle存储过程,实现定时的数据处理、备份或其他业务逻辑。本文将深入探讨如何实现这一功能。 首先,理解Oracle存储过程是关键。存储过程是预编译的SQL和PL/SQL...

    ibatis调用oracle存储过程

    最后,在Java代码中,通过ibatis的Session对象调用存储过程,传入必要的参数,处理返回的结果集。 ```java SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources....

    帆软报表Oracle存储过程解决storeParameter1参数试用插件

    在与帆软报表集成时,正确理解和调用存储过程能极大地增强报表功能和性能。 总结起来,"帆软报表Oracle存储过程解决storeParameter1参数试用插件"主要是针对在调用无参数Oracle存储过程时出现的异常问题提供的一种...

    在.NET中调用Oracle存储过程经验总结.doc

    ### 在.NET中调用Oracle存储过程经验总结 #### 一、引言 随着.NET平台的广泛应用,越来越多的应用程序选择.NET框架进行开发。与此同时,Oracle数据库因其高性能和稳定性被广泛采用。因此,在.NET环境中如何有效地...

    java调用oracle存储过程(游标)相关

    调用存储过程的Java API主要是通过JDBC(Java Database Connectivity),它是Java平台的标准接口,用于与各种数据库进行交互。以下是调用包含游标返回的Oracle存储过程的基本步骤: 1. **连接数据库**: 使用`...

Global site tag (gtag.js) - Google Analytics