先展示一个错误写法

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. 记录在tiny6410平台上采用4GSD卡来启动uboot和烧写nand flash uboot

    下面这种方法是从网上转的 没有验证 环境:ubuntu 13.04一.首先制作sd启动盘: 插入SD卡    sudo dd iflag=dsync oflag=dsync if=tiny210v2- ...

  2. SQL SEVER 的基本请求指令

    SQL分类:DDL--数据定义语言(create,alter,drop,declare) DML--数据操纵语言(select,delete,update,insert) DCL--数据控制语言(gr ...

  3. flask 使用Flask-Migrate迁移数据库(创建迁移环境、生成迁移脚本、更新数据库)

    使用Flask-Migrate迁移数据库 在开发时,以删除表再重建的方式更新数据库简单直接,但明显的缺陷是会丢掉数据库中的所有数据.在生产环境下,没有人想把数据都删除掉,这时需要使用数据库迁移工具来完 ...

  4. <转>jmeter(二十)阶梯式加压测试

    本博客转载自:http://www.cnblogs.com/imyalost/category/846346.html 个人感觉不错,对jmeter讲解非常详细,担心以后找不到了,所以转发出来,留着慢 ...

  5. java.lang.ClassCastException: com.sun.proxy.$Proxy* cannot be cast to***

    Spring AOP 有两种代理方法, 一种是常规JDK,一种是CGLIB. 当代理对象实现了至少一个接口时,默认使用JDK动态创建代理对象: 当代理对象没有实现任何接口时,就会使用CGLIB方法. ...

  6. python学习教程,史上最全面的python学习路线图

    Python 是Web 开发.游戏脚本.计算机视觉.物联网管理和机器人开发的主流语言之一,随着Python用户可以预期的增长,它还有机会在多个领域里登顶.Python学习路线分享给你. 阶段一是Pyt ...

  7. BIOS备忘录之EC常用知识点

    BIOS工程师眼中常用的EC知识点汇总: EC的硬件架构 EC硬件结构上主要分为两部分:Host Domain和EC Domain Host Domain就是通过LPC与CPU通信的部分(LPC部分需 ...

  8. Linux 系统查看对应公网映射地址

    最近在解决网络问题时,需要查看本机的出口公网IP信息,所以在网络上搜索和请求运维达人,获得如下两个方法: curl ifconfig.me 在linux系统中输入上述的命令,可以查看到本机连接的公网信 ...

  9. Java.lang.IllegalStateException: Cannot call sendRedirect() after the response has been committed

    在使用response重定向的时候,报以下错误:Java.lang.IllegalStateException: Cannot call sendRedirect() after the respon ...

  10. 分类统计的controller和service

    SpringMVC框架下的 部分代码: Controller控制器: @Resource ReviewTitleService reviewTitleService;//调用ReviewTitleSe ...