oracle开发错误
先展示一个错误写法
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开发错误的更多相关文章
- 总结:整理 oracle异常错误处理 .
		5.1 异常处理概念 5.1.1 预定义的异常处理 5.1.2 非预定义的异常处理 5.1.3 用户自定义的异常处理 5.1.4 用户定义的异常处理 5.2 异常错误传播 5.2.1 在执行部分引发 ... 
- 整理 oracle异常错误处理
		5.1 异常处理概念 5.1.1 预定义的异常处理 5.1.2 非预定义的异常处理 5.1.3 用户自定义的异常处理 5.1.4 用户定义的异常处理 5.2 异常错误传播 5.2.1 在执行部分引发 ... 
- oracle 异常错误处理
		分类: Oracle 5.1 异常处理概念 5.1.1 预定义的异常处理 5.1.2 非预定义的异常处理 5.1.3 用户自定义的异常处理 5.1.4 用户定义的异常处理 5.2 异常错误传播 5.2 ... 
- Cognos创建Oracle数据源错误以及客户端生成加密信息错误
		报加密错误,先删除 signkeypair csk encrytkeypair三个目录错误一: 创建Oracle数据源错误,在cognos connection中创建oracle的数据源,一直测试不成 ... 
- Oracle SQL Developer,Oracle 开发工具之toad、SQL Developer、PL/SQL Developer等比较
		参考: oracle 的几个开发工具比较 因Oracle几乎是中大型商业企业数据的首选,所以比较一下常用与Oracle的工具. Oracle SQL Developer 免费,一般开发使用足矣,常用. ... 
- Oracle数据库错误消息
		Oracle数据库错误消息 导出错误消息 l EXP-00000导出终止失败 原因:导出时产生Oracle错误. 操作:检查相应的Oracle错误消息. l EXP-00001数据域被截断 - 列长度 ... 
- Oracle安装错误“程序异常终止
		Oracle安装错误"程序异常终止.发生内部错误.请将以下文件提供给oracle技术支持部 "程序异常终止.发生内部错误.请将以下文件提供给oracle技术支持部门:" ... 
- 开发错误日记 12: Unsupported major.minor version 52.0
		开发错误日记 12: Unsupported major.minor version 52.0 在编译时出现如下错误: java.lang.UnsupportedClassVersionError: ... 
- 开发错误11:Configuration with name ‘default’ not found
		开发错误11:Configuration with name 'default' not found 今天在导入一个sdkdemoapp3.0项目时,发现project build.gradle 与m ... 
随机推荐
- 关于angular2 打包(一)
			在讲到angular2 及以上项目打包之前,我先讲一下.angular cli 拥有自己的打包工具,熟悉的可以直接上手.如果用不惯,也可以去使用webpack 之类的.内置的systemjs也是很好用 ... 
- JVM探秘2--详解内存溢出OutOfMemoryError异常
			JVM运行时内存被划分成多个区域,而除了程序计数器之外,其他几个区都会出现OutOfMemoryError异常,主要原因就是对应内存区域的内存不足以再分配内存,一般要么是内存泄漏了要么就是内存参数设置 ... 
- Gpload安装手册(Linux版本)
			Gpload安装手册(Linux版本) 一.python 2.7版本 Linux系统默认是安装python2.7的,如果没有需要手动安装(python版本要求2.4.4以上): 通过命令:python ... 
- Linux 系统开启最大线程数 调优
			系统最大线程数说明 系统可开启的最大线程数,可根据系统本身负载配置进行调优. 查看系统最大线程数 1.查看系统开启的最大线程数. ulimit -u [root@izbp1brwu1w35r1dmj8 ... 
- scp传输文件,自动填充密码
			一个偷懒的小shell, #!/usr/bin/expect #******************************************************************** ... 
- opencv学习之路(24)、轮廓查找与绘制(三)——凸包
			一.简介 二.绘制点集的凸包 #include<opencv2/opencv.hpp> using namespace cv; void main() { //---绘制点集的凸包 Mat ... 
- FSMC_LCD
			1. TFT-LCD(Thin Film Transistor Liquid Crystal Display)[薄膜晶体管液晶显示器] 2. 液晶 物质在熔融状态或在溶液状态下虽然获得了液体物质的流动 ... 
- BZOJ 4480 [JSOI2013] 快乐的jyy
			思路 两个字符串都插入回文自动机中(每次重置last) 最后统计两个right集合的大小就好了 代码 #include <cstdio> #include <algorithm> ... 
- [译]RabbitMQ教程C#版 - "Hello World"
			先决条件 本教程假定 RabbitMQ 已经安装,并运行在localhost标准端口(5672).如果你使用不同的主机.端口或证书,则需要调整连接设置. 从哪里获得帮助 如果您在阅读本教程时遇到困难, ... 
- XGpio函数
			头文件 #include"xgpio.h" int XGpio_Initialize(XGpio * InstancePtr, u16 DeviceId) 功能:初始化GPIO 参 ... 
