存储过程:
create or replace procedure P_search(weight_value in integer, p_cursor out types.searchNature_CURSOR) as
begin
open p_cursor for
select globalId
from (select sum(WEIGHT) as w, globalId
from EMPI_TEMP
group by globalId
order by sum(WEIGHT) desc)
where w > weight_value;
end P_search;
sqlMap.xml:
<parameterMap id="test_map" class="java.util.HashMap">
<parameter property="weight_value" jdbcType="INTEGER"
javaType="java.lang.Integer" mode="IN" />
<parameter property="p_cursor" jdbcType="ORACLECURSOR"
javaType="java.sql.ResultSet" mode="OUT"/>
</parameterMap>
<procedure id="query_search" parameterMap="test_map" resultClass="java.lang.String">
{call p_search(?,?)}
</procedure>
java:
SqlMapClient client = IBatisConfig.getSqlMapper();
Map<String,Object> map = new HashMap<String,Object>();
map.put("weight_value", 30);
try {
@SuppressWarnings({ "unused", "unchecked" })
List<String> list = client.queryForList("query_search",map);
System.out.println(list.size());
}
catch (SQLException e) {
}
使用 ibatis 2.1.6 版本执行有问题。搞了半天。发现时这个版本对存储过程支持有问题。
换成 2.3.4 问题解决。
分享到:
相关推荐
### iBatis调用存储过程返回游标 #### 存储过程简介 存储过程是预先编译并存储在数据库中的SQL代码块,它可以接受输入参数,执行一系列操作,并返回一个或多个输出结果。当需要频繁执行复杂的数据库操作时,使用...
#### 使用Ibatis调用存储过程 Ibatis是一个Java持久层框架,它能够简化Java应用程序与数据库之间的交互。为了调用上述存储过程并正确处理返回值,我们需要进行以下配置: ##### 日志配置(log4j.properties) ```...
在iBatis中,当存储过程返回一个游标时,你可以将其映射为一个Java List。为此,你需要在Java方法中声明一个List类型的参数,而在SQL映射文件中,使用`<resultMap>`定义一个结果集映射,然后在`<selectResult>`标签...
对于Oracle,可能需要利用其特有的函数或特性,如PL/SQL存储过程、游标等。 3. **SQL映射接口**:在.NET 类中创建对应的接口,这个接口的方法对应XML文件中的SQL语句,实现业务逻辑与SQL的绑定。 4. **事务管理**...
3. emis05(iBATIS+Oracle).zip:这个项目特别提到了Oracle数据库,表明Ibatis在处理Oracle特定的SQL特性时,如PL/SQL、游标等,依然表现得游刃有余。Ibatis的灵活性使其能够适应各种数据库,包括Oracle、MySQL、SQL ...
)}`则是具体调用存储过程或函数的SQL语句。 #### 二、ParameterMap标签定义输入输出参数 对于存储过程或函数来说,它们往往需要与应用程序交互数据。为了实现这一点,IBATIS提供了`parameterMap`标签来定义输入...
iBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。iBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。iBatis可以被看作是一个半自动化 ORM(对象关系映射)框架,它对JDBC的操作...
针对Oracle数据库,`ibatis`支持存储过程调用,可以通过`<procedure>`标签来执行。此外,Oracle的游标、分页、序列等特性也可以方便地在`ibatis`中使用。 10. **最佳实践** 在实际应用中,应遵循良好的设计原则,...
用户可以直接调用这些存储过程来执行预定义的操作。 - **函数**: 相比之下,函数更侧重于接收输入参数并返回一个特定类型的值。它们并不直接涉及对特定用户表的操作。 **事务的概念及其特性** - **事务**: 一系列...
数据库连接是软件开发中至关重要的一个环节,它允许应用程序与各种数据库进行交互,获取和存储数据。本篇文章将详细介绍七种常见的数据库连接方法,包括ODBC API、MFC ODBC、DAO、OLE DB、ADO、JDBC以及JDBC的替代...