先展示一个错误写法

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. 使用quartz数据库锁实现定时任务的分布式部署

    ,1.根据项目引用的quartz依赖版本,确定下载的quartz-distribution安装包,我项目引用的信息如下图所示: 2.解压,在\quartz-2.2.3-distribution\qua ...

  2. Spring 工具包

    Spring 工具包: spring-core-.RELEASE.jar!\org\springframework\util

  3. vue mand-mobile ui Stepper步进器默认值传字符串进去不起作用

    vue mand-mobile ui Stepper步进器默认值传字符串进去不起作用 Stepper 步进器 的默认值有没有弄过的,看了组件只能默认数字的,传字符串进去不起作用<div slot ...

  4. 内置函数_map、filter

     1.map   #循环帮你调用函数 map(makir,dir_names)     #生成器,结果是一个内存地址.为了节省内存,每次循环时,就按照定义的规则去生成一个数据,循环一次释放一次生成的数 ...

  5. 【2.0】使用默认日志slf4j配置

    一.SpringBoot日志简介 SpringBoot使用Commons Logging进行所有内部日志记录,但底层日志实现保持开放状态.为Java Util Logging,Log4j2和Logba ...

  6. mongodb 设置权限

    切换到要加密的数据库use diary 创建有 readWrite 权限的用户db.createUser({ user: "youuser", pwd: "youpass ...

  7. TestNG详解(单元测试框架)

    一.TestNG的优点 1.1 漂亮的HTML格式测试报告 1.2 支持并发测试 1.3 参数化测试更简单 1.4 支持输出日志 1.5 支持更多功能的注解 二.编写TestNG测试用例的步骤 2.1 ...

  8. P1908 逆序对

    传送门 这题似乎不应该出现在这里.. 日常做法(归并): #include<iostream> #include<cstdio> #include<algorithm&g ...

  9. npm 是干什么的

    网上的 npm 教程主要都在讲怎么安装.配置和使用 npm,却不告诉新人「为什么要使用 npm」.今天我就来讲讲这个话题. 本文目标读者是「不太了解 npm 的新人」,大神您别看了,不然又说我啰嗦了 ...

  10. Spring Boot读取配置的几种方式

    读取application文件 在application.yml或者properties文件中添加: info.address=USAinfo.company=Springinfo.degree=hi ...