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 ...
随机推荐
- springboot 没有跳转到指定页面
Whitelabel Error Page 解决办法,添加依赖: <dependency> <groupId>org.springframework.boot</gr ...
- 20165215 2017-2018-2《Java程序设计》课程总结
20165215 2017-2018-2<Java程序设计>课程总结 一.每周作业链接汇总 预备作业1:我期望的师生关系:令我记忆深刻的老师,期望的师生关系,本学期的学习规划. 预备作业二 ...
- Linux VNC server 安装配置
1.安装vnc server [root@pxe ~]# yum install tigervnc-server -y 2.设置 vnc server 开机启动 [root@pxe ~]# chk ...
- js数字转换成财务金额
function dealNumberToMoney(money){ var fmtAmt = ""; if(money&&money!=null){ money ...
- luogu[愚人节题目3]现代妖怪殖民地 NTT
U34272 [愚人节题目3]现代妖怪殖民地 fft 题目链接 https://www.luogu.org/problemnew/show/U34272 思路 虽然是个py题. ntt(或者fft)模 ...
- 关于ComponentOne For WinForm 的全新控件 – DataFilter数据切片器(Beta)
概述 数据切片器在电子商务网站上很常见 - 它们可以帮助用户快速过滤所选商品,并且所有过滤选项都可以在一个地方使用,通常包含核心控件类型为:清单,范围栏和单选按钮等.在ComponentOne For ...
- Vue常见指令
文本相关指令 <div id="app"> <!-- 插值表达式 --> <p>{{ msg }}</p> <!-- eg:原 ...
- 7、zabbix使用进阶(03)
节知识点: zabbix自动发现 web监控 zabbix自动发现 官网:https://www.zabbix.com/documentation/4.0/zh/manual/discovery/ ...
- layui框架
layui框架 Fly社区/分享一个layui风格的grid.greegrid
- js +与?优先级
var val = 'smtg'; console.log('Value is ' + (val === 'smtg') ? 'Something' : 'Nothing'); // A. Value ...