先展示一个错误写法

public static String printGg_bysly0List() {// 外网

        TransManager tm = new TransManager();
try {
// 获取要更改的人员
String sql = "select t.yrk057,t.aac002,t.yr0560 from gg_bysly0 t where t.yr0560 like '2018%'"; List<Gg_bysly0> sybcbnryList = op.executeSQLQuery(sql, Gg_bysly0.class);// 获取到了要更改的list//一次查询oracle List xylist = op.executeSQLQuery("select * from xy_zlrxyxx t ");//二次查询oracle
Map<String, String> xyMap = new HashMap<String, String>();
for (int y = 0; y < xylist.size(); y++) {
BasicDynaBean bdbean = (BasicDynaBean) xylist.get(y);
// xyMap.put(xylist.get(y).getYrk228(),
// xylist.get(y).getQuerytime());
xyMap.put(bdbean.get("pid").toString(), bdbean.get("querytime").toString());
// System.out.println(bdbean.get("pid").toString()+"
// "+bdbean.get("querytime").toString());
} for (int x = 0; x < sybcbnryList.size(); x++) {
tm.begin();
try {
Gg_bysly0 dto = sybcbnryList.get(x);
String yrk057 = dto.getYrk057(); if (null == xyMap.get(yrk057)) {//查询完还要重新判断是否符合条件 // 调用信用接口
String messageString = null;
Map<String, String> map = new LinkedHashMap<String, String>();
map.put("accessKey", "rs_jgpt_zwnw");
map.put("secretKey", "rs_jgpt_zwnw170911");
map.put("objectId", dto.getAac002());
String url = "http://172.18.1.150:9010/esb/esbproxy";// ESB核心地址
String user = "esb";
String pwd = "985984FA6B44CE2751075D37FF59EECD";
String sid = "gov.xm.wbjh.getPersonCreditBriefInfo"; // 自然人信用接口
try {
messageString = EsbUtils.sendReq(url, user, pwd, sid, map);
} catch (IOException e) {
// TODO Auto-generated catch block
throw new YLZCBPException("调动信用接口失败,请联系管理员!");
}
Map resultsetMap = YlzesbResponseUtils.parseResponse(messageString);
List dataList = (List) MapUtils.getObject(resultsetMap, "retrieve");
for (int j = 0; j < dataList.size(); j++) {
Map map1 = (Map) dataList.get(j);
Xy_zlrxyxx entity = new Xy_zlrxyxx();
if (StringUtils.isEmpty((String) map1.get("OBJECT_ID"))) {
entity.setPid(yrk057);
entity.setQuerytime(dto.getYr0560());
entity.setQueryresult("查无结果");
op.save(entity);
break;
}
BeanHelper.copyProperties(map1, entity);
entity.setPid(yrk057);
entity.setOBJECT_ID(dto.getAac002());
entity.setQuerytime(dto.getYr0560());
op.save(entity);
}
}
tm.commit();
} catch (Exception e) {
log.info("错误", e);
tm.rollback();
} } return "Success"; } catch (Exception e) {
return e.getMessage();
} }

上面这种做法十分蠢,先是一次查完我们需要的数据,然后再转格式,再二次查完,再转,之后再判断,最后写入。难以阅读效率也非常低。

换一种做法

先写好要判断的视图,然后直接用语句。

create or replace view vw_xyzlrid as
select sbsj,pid,aac002 from(
select bys.yr0560 as sbsj,bys.yrk057 as pid,bys.aac002 as aac002
from GG_BYSLY0 bys
where bys.yr0560 like '2018%'
union all
select sy.yr2290 as sbsj,sy.yrk208 as pid,sy.aac002 as aac002
from sy_bcbnry sy
where sy.yr2290 like '2018%' and sy.yr2316 = '') t
where t.pid not in (select pid from xy_zlrxyxx);
public static String printSybcbnryList() {// 外网

        TransManager tm = new TransManager();
try { String sql = "select t.pid,t.aac002,t.sbsj from vw_xyzlrid t "; List addList = op.executeSQLQuery(sql);// 获取到了要更改的list for (int x = 0; x < addList.size(); x++) {
tm.begin();
try {
BasicDynaBean bdbean = (BasicDynaBean) addList.get(x);
String aac002 = bdbean.get("aac002").toString();
String pid = bdbean.get("pid").toString();
String sbsj = bdbean.get("sbsj").toString();
// 调用信用接口
String messageString = null;
Map<String, String> map = new LinkedHashMap<String, String>();
map.put("accessKey", "rs_jgpt_zwnw");
map.put("secretKey", "rs_jgpt_zwnw170911");
map.put("objectId", aac002);
String url = "http://172.18.1.150:9010/esb/esbproxy";// ESB核心地址
String user = "esb";
String pwd = "985984FA6B44CE2751075D37FF59EECD";
String sid = "gov.xm.wbjh.getPersonCreditBriefInfo"; // 自然人信用接口
try {
messageString = EsbUtils.sendReq(url, user, pwd, sid, map);
} catch (IOException e) {
// TODO Auto-generated catch block
throw new YLZCBPException("调动信用接口失败,请联系管理员!");
}
Map resultsetMap = YlzesbResponseUtils.parseResponse(messageString);
List dataList = (List) MapUtils.getObject(resultsetMap, "retrieve");
for (int j = 0; j < dataList.size(); j++) {
Map map1 = (Map) dataList.get(j);
Xy_zlrxyxx entity = new Xy_zlrxyxx();
if (StringUtils.isEmpty((String) map1.get("OBJECT_ID"))) {
entity.setPid(pid);
entity.setQuerytime(sbsj);
entity.setQueryresult("查无结果");
op.save(entity);
break;
}
BeanHelper.copyProperties(map1, entity);
entity.setPid(pid);
entity.setOBJECT_ID(aac002);
entity.setQuerytime(sbsj);
op.save(entity);
} tm.commit();
} catch (Exception e) {
log.info("错误", e);
tm.rollback();
} } return "Success"; } catch (Exception e) {
return e.getMessage();
} }

oracle开发错误的更多相关文章

  1. 总结:整理 oracle异常错误处理 .

    5.1 异常处理概念 5.1.1 预定义的异常处理 5.1.2 非预定义的异常处理 5.1.3 用户自定义的异常处理 5.1.4  用户定义的异常处理 5.2 异常错误传播 5.2.1 在执行部分引发 ...

  2. 整理 oracle异常错误处理

    5.1 异常处理概念 5.1.1 预定义的异常处理 5.1.2 非预定义的异常处理 5.1.3 用户自定义的异常处理 5.1.4  用户定义的异常处理 5.2 异常错误传播 5.2.1 在执行部分引发 ...

  3. oracle 异常错误处理

    分类: Oracle 5.1 异常处理概念 5.1.1 预定义的异常处理 5.1.2 非预定义的异常处理 5.1.3 用户自定义的异常处理 5.1.4 用户定义的异常处理 5.2 异常错误传播 5.2 ...

  4. Cognos创建Oracle数据源错误以及客户端生成加密信息错误

    报加密错误,先删除 signkeypair csk encrytkeypair三个目录错误一: 创建Oracle数据源错误,在cognos connection中创建oracle的数据源,一直测试不成 ...

  5. Oracle SQL Developer,Oracle 开发工具之toad、SQL Developer、PL/SQL Developer等比较

    参考: oracle 的几个开发工具比较 因Oracle几乎是中大型商业企业数据的首选,所以比较一下常用与Oracle的工具. Oracle SQL Developer 免费,一般开发使用足矣,常用. ...

  6. Oracle数据库错误消息

    Oracle数据库错误消息 导出错误消息 l EXP-00000导出终止失败 原因:导出时产生Oracle错误. 操作:检查相应的Oracle错误消息. l EXP-00001数据域被截断 - 列长度 ...

  7. Oracle安装错误“程序异常终止

    Oracle安装错误"程序异常终止.发生内部错误.请将以下文件提供给oracle技术支持部   "程序异常终止.发生内部错误.请将以下文件提供给oracle技术支持部门:" ...

  8. 开发错误日记 12: Unsupported major.minor version 52.0

    开发错误日记 12: Unsupported major.minor version 52.0 在编译时出现如下错误: java.lang.UnsupportedClassVersionError: ...

  9. 开发错误11:Configuration with name ‘default’ not found

    开发错误11:Configuration with name 'default' not found 今天在导入一个sdkdemoapp3.0项目时,发现project build.gradle 与m ...

随机推荐

  1. springboot 没有跳转到指定页面

    Whitelabel Error Page   解决办法,添加依赖: <dependency> <groupId>org.springframework.boot</gr ...

  2. 20165215 2017-2018-2《Java程序设计》课程总结

    20165215 2017-2018-2<Java程序设计>课程总结 一.每周作业链接汇总 预备作业1:我期望的师生关系:令我记忆深刻的老师,期望的师生关系,本学期的学习规划. 预备作业二 ...

  3. Linux VNC server 安装配置

    1.安装vnc server [root@pxe ~]# yum install tigervnc-server -y   2.设置 vnc server 开机启动 [root@pxe ~]# chk ...

  4. js数字转换成财务金额

    function dealNumberToMoney(money){ var fmtAmt = ""; if(money&&money!=null){ money ...

  5. luogu[愚人节题目3]现代妖怪殖民地 NTT

    U34272 [愚人节题目3]现代妖怪殖民地 fft 题目链接 https://www.luogu.org/problemnew/show/U34272 思路 虽然是个py题. ntt(或者fft)模 ...

  6. 关于ComponentOne For WinForm 的全新控件 – DataFilter数据切片器(Beta)

    概述 数据切片器在电子商务网站上很常见 - 它们可以帮助用户快速过滤所选商品,并且所有过滤选项都可以在一个地方使用,通常包含核心控件类型为:清单,范围栏和单选按钮等.在ComponentOne For ...

  7. Vue常见指令

    文本相关指令 <div id="app"> <!-- 插值表达式 --> <p>{{ msg }}</p> <!-- eg:原 ...

  8. 7、zabbix使用进阶(03)

    节知识点: zabbix自动发现 web监控 zabbix自动发现   官网:https://www.zabbix.com/documentation/4.0/zh/manual/discovery/ ...

  9. layui框架

    layui框架 Fly社区/分享一个layui风格的grid.greegrid

  10. js +与?优先级

    var val = 'smtg'; console.log('Value is ' + (val === 'smtg') ? 'Something' : 'Nothing'); // A. Value ...