您的位置:首页 > 数据库

JDBC获取数据库大字段

2015-12-05 15:10 190 查看
//SQL如下

String sql = "select k.order_id as orderId, k.tid_time as createTime, k.flow_trace_id as flow,g.name as goodsName, k.result_desc as msg,k.op_code as port, k.req_xml as req, k.rsp_xml as resp"

+ " from (SELECT Row_Number() over(partition by t.order_id order by c.req_time desc) lev,t.tid_time,t.flow_trace_id, t.refund_status,c.state,t.order_id,c.result_desc,c.op_code,c.req_xml,c.rsp_xml "

+ " FROM es_order_ext t left join inf_comm_client_calllog c on t.order_id = c.col3"

+ " where t.flow_trace_id = '"+link

+ "' and t.tid_time <= to_date('"+ end_time + "','yyyy/MM/dd HH24:mi:ss') "

+ "and t.tid_time >= to_date('"+ start_time +"','yyyy/MM/dd HH24:mi:ss') "

+") K,es_order_items g "

+"where k.order_id = g.order_id "

+"and k.flow_trace_id is not null "

+"and k.state in(-1,0) "

+"and k.flow_trace_id <> 'L' "

+"and k.flow_trace_id <> 'O' "

+"and LEV = 1"

+" order by k.flow_trace_id asc";

System.out.println("--获取各环节未处理异常订单 明细"+sql);

return jdbcTemplate.query(sql, new RowMapper() {

@Override

public Object mapRow(ResultSet arg0, int arg1)

throws SQLException {

OrderFlowItem orderFlowItem = new OrderFlowItem();
//bean

String orderId = arg0.getString("orderId");

String createTime = arg0.getString("createTime");

String flow = arg0.getString("flow");

String goodsName = arg0.getString("goodsName");

String msg = arg0.getString("msg");

String port = arg0.getString("port");

String req = "";
//大字段1

String resp = "";
//大字段2

Object req_obj = arg0.getBlob("req");

Object rsp_obj = arg0.getBlob("resp");

if (req_obj != null) {

Class clazz = req_obj.getClass();

Method method;

try {

method = clazz.getMethod("getBinaryStream", new Class[]{});

InputStream is = (InputStream)method.invoke(req_obj, new Object[]{});

InputStreamReader reader = new InputStreamReader(is,"GBK");

BufferedReader br = new BufferedReader(reader);

String s = br.readLine();

StringBuffer sb = new StringBuffer();

while (s != null) {// 执行循环将字符串全部取出付值给StringBuffer由StringBuffer转成STRING

sb.append(s);

s = br.readLine();

}

req = sb.toString();

} catch (Exception e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

}

if (rsp_obj != null) {

Class clazz = rsp_obj.getClass();

Method method;

try {

method = clazz.getMethod("getBinaryStream", new Class[]{});

InputStream is = (InputStream)method.invoke(rsp_obj, new Object[]{});

InputStreamReader reader = new InputStreamReader(is,"GBK");

BufferedReader br = new BufferedReader(reader);

String s = br.readLine();

StringBuffer sb = new StringBuffer();

while (s != null) {// 执行循环将字符串全部取出付值给StringBuffer由StringBuffer转成STRING

sb.append(s);

s = br.readLine();

}

resp = sb.toString();

} catch (Exception e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

}

orderFlowItem.setCreateTime(createTime);

orderFlowItem.setFlow(flow);

orderFlowItem.setGoodsName(goodsName);

orderFlowItem.setMsg(msg);

orderFlowItem.setOrderId(orderId);

orderFlowItem.setPort(port);

orderFlowItem.setReq(req);

orderFlowItem.setresp(resp);

return orderFlowItem;
//返回对象

}

});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: