ESB查询结果集转换操作

ESB查询结果集转换操作

输入参数:oracle查询结果集
返回参数:json字符串或oracle自定义type

oracle查询结果集转换为json字符串

/获得查询sql结果集/
ResultSet tmpRS = (ResultSet) row1.rs ;
JSONArray array = new JSONArray();
JSONObject obj;
JSONArray tmpJSONArray = new JSONArray();
JSONObject job = null ;
while(tmpRS.next()){
/创建JSONObject对象,存储一行数据/
obj = new JSONObject();
/存储主键数据/
job = new JSONObject();

 obj.put("crm_code", tmpRS.getString("CUSTOMER_NUMBER"));
 obj.put("client_name", tmpRS.getString("CUSTOMER_NAME"));
 obj.put("status", tmpRS.getString("PROCESS_FLAG"));
 obj.put("reason", tmpRS.getString("ERROR_MESSAGE"));
 job.put("ATTRIBUTE10", tmpRS.getString("ATTRIBUTE10"));
 /*将行数据对象JSONObject加入到JSONArray对象*/            
 array.add(obj);
 tmpJSONArray.add(job);

}
/将JSONArray对象转换为json字符串/
String jsonListString = JSON.toJSONString(array,SerializerFeature.WriteMapNullValue);
String jsonString = JSON.toJSONString(tmpJSONArray,SerializerFeature.WriteMapNullValue);
output_row.jsonListString=jsonListString;
output_row.jsonString=jsonString;
tmpRS = null;
array = null;
obj = null;
tmpJSONArray = null;
job = null;
需要引用的包

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSONException;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import java.sql.ResultSet;
Oracle查询结果集转换为Oracle自定义type
方法一:

Connection connection_Java_1 = connection_OracleSP_1;
ARRAY deptArrayObjectp_cux_ap_interface = null;
CUX_AP_INTERFACE_PAY_OBJECT mesCustomer = null;

JSONArray tmpJSONArrayH = new JSONArray();
JSONObject jobH = null ;

if (null != row2.rs) {
ResultSet tmpRS = (ResultSet) row2.rs;
/创建工具类类型列表/
List<CUX_AP_INTERFACE_PAY_OBJECT> mesCustomers = new ArrayList<CUX_AP_INTERFACE_PAY_OBJECT>();
/解析查询结果集,将其赋值给相应的工具类对象的属性/
while(tmpRS.next()){
jobH = new JSONObject();
mesCustomer = new CUX_AP_INTERFACE_PAY_OBJECT();

    jobH.put("PROCESS_ID", tmpRS.getBigDecimal("PROCESS_ID"));

    mesCustomer.setGroup_id(tmpRS.getBigDecimal(null));
    mesCustomer.setKEY_ID   (tmpRS.getString("KEY_ID"));//JOB_NUMBER 
    mesCustomer.setRESOURCE_SYS(tmpRS.getString("SOURCE_FROM"));//RESOURCE_SYS
    mesCustomer.setPAY_ID(tmpRS.getBigDecimal("CHECK_ID"));
    mesCustomer.setOU_ID(null);
    mesCustomer.setOU_NAME(tmpRS.getString("ORG_NAME"));
    mesCustomer.setPAY_IN_ACC(tmpRS.getString("PAY_BANK_ACCOUNT"));
    mesCustomer.setPAY_TYPE(tmpRS.getString("PAYMENT_TYPE"));//CLASS
    mesCustomer.setPAY_SCHDATE(tmpRS.getDate("CHECK_DATE"));//STATUS
    mesCustomer.setINVOICE_NUMBER("");
    mesCustomer.setPAY_NUMBER(tmpRS.getString("CHECK_NUMBER"));//FROM_DATE
  
    mesCustomers.add(mesCustomer);
    tmpJSONArrayH.add(jobH);
    }

/初始化STRUCT类型数组/
STRUCT[] mesCustomerLines = new STRUCT[mesCustomers.size()];
Object[] obMESCo = null;
StructDescriptor sd = new StructDescriptor(“CUX_AP_INTERFACE_PAY_OBJECT”,connection_Java_1);
if (null != mesCustomers && mesCustomers.size() > 0) {
for(int i = 0; i < mesCustomers.size(); i++) {
mesCustomer = mesCustomers.get(i);
obMESCo = new Object[11];
obMESCo[0] =mesCustomer.getGroup_id();
obMESCo[1] =mesCustomer.getKEY_ID();
obMESCo[2] =mesCustomer.getRESOURCE_SYS();
obMESCo[3] =mesCustomer.getPAY_ID();
obMESCo[4] =mesCustomer.getOU_ID();
obMESCo[5] =mesCustomer.getOU_NAME();
obMESCo[6] =mesCustomer.getPAY_IN_ACC();
obMESCo[7] =mesCustomer.getPAY_TYPE();
obMESCo[8] =mesCustomer.getPAY_SCHDATE();
obMESCo[9] =mesCustomer.getINVOICE_NUMBER();
obMESCo[10] =mesCustomer.getPAY_NUMBER();

        mesCustomerLines[i] = new STRUCT(sd, connection_Java_1, obMESCo);
        }
    }

/创建数组描述/
ArrayDescriptor arrayDept = ArrayDescriptor.createDescriptor(“CUX_AP_INTERFACE_PAY_TBL”, connection_Java_1);
deptArrayObjectp_cux_ap_interface = new ARRAY(arrayDept, connection_Java_1, mesCustomerLines);
}

String jsonString = JSON.toJSONString(tmpJSONArrayH,SerializerFeature.WriteMapNullValue,SerializerFeature.WriteDateUseDateFormat);
output_row.deptArrayObjectp_cux_ap_interface = deptArrayObjectp_cux_ap_interface;

output_row.jsonString=jsonString;
需要引用的包

import oracle.sql.STRUCT;
import oracle.sql.StructDescriptor;
import oracle.jdbc.OracleTypes;
import oracle.sql.ARRAY;
import oracle.sql.ArrayDescriptor;
import oracle.sql.Datum;
import oracle.jdbc.OracleConnection;
import java.sql.ResultSet;
import java.text.DateFormat;
import java.util.Date;

import java.sql.Statement;
import java.sql.Connection;
import java.util.ArrayList;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
方法二:

Connection connection_Java_1 = connection_OracleSP_1;
Connection connection_Java_2 = conn_OracleRow_1;
Statement stmt = connection_Java_2.createStatement();
String sql = “select count(*) as ROWSUM from FRM_MANUFACTURE”;
ResultSet rsc = stmt.executeQuery(sql);
int rowcount=0 ;
while(rsc.next()){
rowcount = rsc.getInt(“ROWSUM”);
}
Object[] ob;
STRUCT[] deptArray;
StructDescriptor sd;
ArrayDescriptor arrayDept;
deptArray = new STRUCT[rowcount];
sd = new StructDescriptor(“CUX_EDIT_QMS_ERP_REC”,connection_Java_1);
int i = 0;
while(tmpRS.next()){
ob = new Object[18];
ob[0] = tmpRS.getString(“唯一性标识”); //tmpid
ob[1] = (nulltmpRS.getString(“ORG”)||"".equals(tmpRS.getString(“ORG”))?null:new BigDecimal(tmpRS.getString(“ORG”))); //organization_id
ob[2] = tmpRS.getString(“DEPARTMENT”); //production_code
ob[3] = tmpRS.getString(“FNAME7”); //work_code
ob[4] = tmpRS.getString(“FNAME93”); //business_typecode
ob[5] = tmpRS.getString(“FNAME9”); //qms_num
ob[6] = tmpRS.getString(“UN_NUM”); //scrap_number
ob[7] = tmpRS.getString(“FNAME60”); //dhh_segment2
ob[8] = tmpRS.getString(“FNAME28”); //eg_num
ob[9] = tmpRS.getString(“FNAME2”);//segment1
ob[10] = (null
tmpRS.getString(“FNAME45”)||"".equals(tmpRS.getString(“FNAME45”))?null:new BigDecimal(tmpRS.getString(“FNAME45”))); //scrap_quantity
ob[11] = tmpRS.getString(“FNAME91”); //line_code
ob[12] = tmpRS.getString(“FNAME92”);//oper_seq_num
ob[13] = tmpRS.getString(“FNAME37”);//scrap_date
ob[14] = tmpRS.getString(“FNAME8”); //responsible_party
ob[15] = tmpRS.getString(“FNAME33”); //vendor_code
ob[16] = tmpRS.getString(“报废原因”); //scrap_reason
ob[17] = tmpRS.getString(“COMMENTS”);//remark
deptArray[i] = new STRUCT(sd,connection_Java_1,ob);
deptArray[i].setAutoBuffering(true);
i++;
}
arrayDept = ArrayDescriptor.createDescriptor(“CUX_EDIT_QMS_ERP_TBL”, connection_Java_1);
ARRAY deptArrayObjectp_qms_erp_tbl = new ARRAY(arrayDept, connection_Java_1, deptArray);
row3.deptArrayObjectp_qms_erp_tbl = deptArrayObjectp_qms_erp_tbl;
需要引用的包

import oracle.sql.STRUCT;
import oracle.sql.StructDescriptor;
import oracle.jdbc.OracleTypes;
import oracle.sql.ARRAY;
import oracle.sql.ArrayDescriptor;
import oracle.sql.Datum;
import oracle.jdbc.OracleConnection;
import java.sql.ResultSet;
import java.text.DateFormat;
import java.util.Date;

import java.sql.Statement;
import java.sql.Connection;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;

猜你喜欢

转载自blog.csdn.net/weixin_44544038/article/details/86506560