今天试了试 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;
}
怎么使用就是你自己的事情了,以上代码仅做参考,有什么不对的地方还请指正,希望对你有所帮助
分享到:
相关推荐
ibatis调用oracle存储过程分页
本文介绍了Java调用Oracle存储过程返回结果集Record和Cursor的相关知识点,包括创建Type、PACKAGE和PROCEDURE,Java代码中调用存储过程,并获取结果集。这些知识点对深入了解Oracle存储过程和Java调用Oracle存储过程...
本文将深入探讨如何在Spring Boot项目中整合MyBatis,实现调用Oracle存储过程并处理游标返回的数据。 首先,我们需要在Spring Boot项目中引入相关的依赖。在`pom.xml`文件中添加Oracle JDBC驱动(ojdbc66-oracle...
能不能写个动态的业务,只输入存储过程名称,自动获取存储过程参数,并且参数的数据从前台传递过来...只根据输入不同的存储过程名称、参数内容,自动调用不同的存储过程。 已经使用在多个项目中 全开源项目 请放心下载
- 如果连接成功,则通过`ADOStoredProc1`组件调用存储过程`pkg_test.get`。 - 创建输入参数`p1`,并为其赋值1。 - 最后,执行存储过程。 通过以上步骤,我们可以在Delphi中成功调用Oracle的存储过程,并获取其...
5. **报表取值与正常报表设置一样**:报表的其他设置(如表格、图表等)与普通报表无异,主要的区别在于数据来源是调用存储过程。 6. **Tomcat中的数据源设置**:在Tomcat服务器的配置文件(通常为`context.xml`)...
在Oracle中,调用存储过程通常以`BEGIN`和`END`包围,使用`CALL`关键字。例如: ```java String callProc = "{call package_name.procedure_name(?, ?)}"; PreparedStatement pstmt = connection.prepareCall...
在转换SSH项目到Spring Boot的过程中,遇到了由于连接池默认配置限制(默认连接数为10)导致的问题,即频繁调用存储过程后,数据库连接无法得到正确释放,从而引发项目崩溃。以下是对这三种调用方式的详细解释: 1....
总体设计思想是在Oracle服务器上建立用户所需的存储过程,用户在远端客户机上通过调用存储过程来获取所需数据,这样既不影响服务器的数据库运行,也实现了数据的自动转换。数据库接口程序的主要内容包括调用存储过程...
### C#调用Oracle方法(包括调用存储过程) 在.NET框架中,使用C#语言进行数据库操作是一项常见的任务。本文将详细介绍如何使用C#语言连接Oracle数据库,并演示如何调用Oracle存储过程,特别是带有输出参数的情况。...
调用Oracle函数的过程与调用存储过程类似,但创建CallableStatement时的SQL语句略有不同。由于函数会返回一个值,所以格式通常是`{? = call function_name(?, ?, ...)}`。在执行后,通过`CallableStatement....
在Visual Basic中,通过ADO (ActiveX Data Objects) 库可以实现对Oracle数据库的操作,包括调用存储过程。在给定的代码片段中,可以看到一个名为`AddTimePay`的子过程,它负责调用Oracle数据库中的存储过程`add_...
结合Oracle数据库,我们可以利用任务计划程序调用Oracle存储过程,实现定时的数据处理、备份或其他业务逻辑。本文将深入探讨如何实现这一功能。 首先,理解Oracle存储过程是关键。存储过程是预编译的SQL和PL/SQL...
CallabledStatement interface 是 Statement 的一个子接口,提供了一些特殊的方法来调用存储过程。使用 CallabledStatement 可以提高应用程序的性能和安全性。 三、IN OUT 参数的使用 IN OUT 参数是一种特殊的参数...
3. **调用存储过程**:通过`CallableStatement`的`execute`或`executeQuery`方法执行存储过程。 4. **处理输出参数和结果集**:如果存储过程有输出参数或返回结果集,使用`getXXX`方法获取它们。 假设我们有一个名...
Spring jdbcTemplate 调用 Oracle 存储过程...我们创建了一个简单的存储过程,用于查询员工信息,并使用 Spring jdbcTemplate 调用存储过程来获取结果集。这种方法可以帮助我们简化数据库操作,并提高应用程序的性能。
用 Java 调用 Oracle 存储过程时,需要使用 JDBC 驱动程序来连接 Oracle 数据库,然后使用 CallableStatement 对象来调用存储过程。 在存储过程中做简单动态查询 在存储过程中,做简单动态查询需要使用 EXECUTE ...
PB 调用存储过程 [Oracle][参考] 在软件开发中,调用存储过程是非常重要的一步骤,本文将详细介绍 PB 中调用 Oracle 存储过程的格式和方法。 调用存储过程的一般格式 在 PB 中调用存储过程的格式为 `Declare my_...
JSP页面使用Java脚本来调用存储过程。以下代码展示了具体的步骤: ```jsp ;charset=gb2312"%> *"%> <tr><td>aaa</td><td>bbb</td></tr> String driver = "oracle.jdbc.driver.OracleDriver"; String strUrl =...