存储过程返回二维数组(一)

一、

import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import oracle.sql.Datum;
import oracle.sql.STRUCT;

import org.apache.ibatis.type.JdbcType;
import org.apache.ibatis.type.TypeHandler;

public class OrderCheckTypeHandler implements TypeHandler<Object> {

public Object getResult(ResultSet arg0, String arg1) throws SQLException {
// TODO Auto-generated method stub
return null;
}

public Object getResult(ResultSet arg0, int arg1) throws SQLException {
// TODO Auto-generated method stub
return null;
}

/**
* 调用存储过程实现该方法即可。
*/
public Object getResult(CallableStatement cs, int arg1) throws SQLException {
// 定义结果集, XXDTO是我们自己定义的bean,用来与统计数量一行数据一一对应。
List<GoodCheckVO> dtos = new ArrayList<GoodCheckVO>();
ResultSet rs = cs.getArray(arg1).getResultSet();
while (rs.next()) {
Datum[] data = ((STRUCT) rs.getObject(2)).getOracleAttributes();
GoodCheckVO dto = new GoodCheckVO();
// key_value赋值
// 以下操作取得数据库中数据值赋给相应的bean。
dto.setCode(null != data[0] ? data[0].stringValue() : null);
dto.setData(null != data[1] ? data[1].stringValue() : null);
dto.setMsg(null != data[2] ? data[2].stringValue() : null);
// 获得list
dtos.add(dto);
}
return dtos;
}

public void setParameter(PreparedStatement ps, int i, Object o, JdbcType jdbcType)
throws SQLException {

}

}

二、

<resultMap type="xxxxxx.entity.GoodCheckVO" id="clist">
<result property="code" column="ERRORS_CODE" />
<result property="msg" column="ERRORS_TYPE" />
<result property="data" column="ERRORS_MSG"/>
</resultMap>
<select id="Check" statementType="CALLABLE" parameterType="java.util.HashMap" resultType="java.util.Map">
<![CDATA[
{call xxxx_pkg.check_eb_iface(#{p_eb_order_num,mode=IN,jdbcType=VARCHAR},#{x_return_status,mode=OUT,jdbcType=VARCHAR},#{x_eb_info,mode=OUT, javaType=java.util.List,jdbcType=ARRAY,jdbcTypeName=SECOM_EB_ORDER_TYPE_T, resultMap=clist,typeHandler=com.sekorm.foreign.common.persistence.OrderCheckTypeHandler})}
]]>
</select>

原文地址:https://www.cnblogs.com/albert-think/p/8583683.html

时间: 2024-08-30 05:13:14

存储过程返回二维数组(一)的相关文章

关于返回二维数组指针问题

所谓的二维数组指针,是指针的指针,指的就是二维数组在内存中的存储地址. 二维数组的地址与一维数组的地址的不同点是:它除了有元素地址外,还有标识各行起始位置的行首地址(称为行的首地址).行的首地址和行的首元素的地址具有相同的地址值,但是它们是两种不同的地址:若有定义int a[5][5]:则a[0][0]是a数组 首行首列元素(代表该元素的值).而&a[0][0]是首行首元素的地址.&&a[0][0]则是首行的首地址.从这个意义上讲,可以说行的首地址是一种二重地址,即指针的指针. 废

返回二维数组最大联通子数组的和

一.题目 输入一个二维整形数组,数组里有正数也有负数. 求所有子数组的和的最大值. 二.设计思想 第一种方法:首先若要对二维数组进行分析,通常想要把它化简成为一个一维数组.再先求每个一维数组的最大子数组和,并记下每行最大一维子数组的下标.这是就会分两种情况:第一种是行之间的最大子数组是相连的,这时就可以直接相加得到:第二种是不相连的,,这时候就把每行的最大子数组看成一个整体,再使每个最大数组块进行相连,求使其相连的最小代价.最后得到的就是最大联通子数组的和. 第二种方法:在二维整形数组中,数据可

CI codeigniter 查询 db query 返回 二维数组 返回 第一条记录

$r = $this->db->query("SELECT * FROM ych_borrow WHERE user_id=2"); $r->result_array();//返回二位数组 $r->row_array();//返回第一条数据的一维数组

周泊辰和张子涵返回二维数组整数组和

首先了解一维数组的求最大和,可以先列举出一维数组的所有子数组并求出他们的和,即加上一个正的和会增加,反之减少,如果某一个和为负数,那么就应该放弃他,然后清零.然后求二维数组最大子数组的和,可以转化为求一维数组最大子数组的和设一个二维数组a[n][m],找它的 最大子数组之和,先建立一个新的二维数组b[n][m],二维数组b[j][k] 存放的是a[j][k](0<=j2.循环:从a[0][0]开始 以此是 a[0][1]. a[0][2]--a[0][m].a[1][0]. a[1][1]--a

返回二维数组最大子数组的和

程序代码:#include<stdio.h> #define M 5 #define N 4 int maxSubArray(int arr[], int len) { int i, sum = arr[0], b = 0; for (i = 0; i<len; ++i) { if (b>0) b += arr[i]; else b = arr[i]; if (b>sum) sum = b; } return sum; } int maxSubMatrix(int n, in

返回二维数组子数组联通和最大

分析 1,开始先将将二维矩阵转换成图的存储形式,当两个相邻的数之间是联通的时,记长度为1,否则就是0: 2,将整个图从每个点都开始遍历一遍,遍历过程中时,当和小于0时断开两点间的路,当和大于最大和时改变最大和的值: 3,取以每个点为起点遍历的和的最大值即时最大联通子数组的和.遍历时,选取已遍历的联通子数组周围最大值遍历.经过重复的几次遍历就可以确定此数组中最大连通数组和了. 题目要求: 放在一个input.txt的文件中 数组里面有正数有负数 返回联通子数组和最大的值 #include<fstr

ajax接收返回二维数组的json数据后显示为null

前端ajax如下: > $.ajax({url:'http://xxxx.com/action.php',//路径type:'post',data:{id:0}dataType:'json',success:function(data){console.log(data);}action.php如下:<?phpinclude "con_db.php";//连接数据库$id = $_POST['id']:$sql="select * from note where

axis2生成webservice服务端返回String[]和String[][]一维数组和二维数组解析

环境:用axis2生成服务端,用aixs做客户端 1:直接返回String[]: public String[] testArr(String name) { String[] ret=new String[]{"一二三四五","上山打老虎",name}; return ret; } 发布后,wsdl为: 而普通返回String方法的格式为: 可以看到,返回String[]比返回String的响应中多了一个参数maxOccurs="unbounded&qu

Java实验项目二——二维数组实现九九乘法表

Program:打印乘法口诀表 (1)编写一个方法,参数(二维数组),完成将二维数组中的数据按照行列显示的工作. (2)编写一个测试方法,给出99乘法表,放入到二维数组中,调用(1)中的方法,显示乘法口诀表. Description:main方法所在类在最后给出,代码如下: 1 /* 2 *Description:定义工具类,负责初始化二维数组和打印二维数组 3 * 4 * */ 5 6 package tools; 7 8 9 public class Operate { 10 11 //初始