写数据库代码时候经常会用到try catch 。
但是一下子都把所有的东西写在try里,很显然在错误定位的时候,
很难发现真正错误的原因,而且性能上来说也不是个很好的表率。
看看下面这个:
Transaction trans = db.getTransaction();
try {
trans.begin();
String s_cgbh = Decoder.getParameter(request, "cgbh");
String s_kwmc = Decoder.getParameter(request, "kwmc");
long l_kw = AutoEmbody(request, s_cgbh, s_kwmc);
if (l_kw == 0) {
db.executeUpdate("DELETE FROM SLXX WHERE CGBH='" + s_cgbh + "'");
db.executeUpdate("INSERT INTO SLXX(CGBH,SLDM,SLMC,SLNF,ID) SELECT '" + s_cgbh + "',QKSYDM, QKSYMC,TO_CHAR(SYSDATE,'YYYY'),xmryxx_seq.nextval FROM LWQKXX,SLQK,QKSY WHERE LWQKXX.LSH=SLQK.LWQKLSH AND SLQK.QKSYDM=QKSY.QKSYDM AND LWQKXX.KWMC=' "+ s_kwmc + "'");
}
db.executeUpdate(SqlSciencepaperManager.getSciencepaperInsertSql(request));
trans.commit();
} catch (Exception ex) {
trans.rollback();
throw ex;
}
可以看到这段代码里出现的不规范很多,而且这并不是维护的代码中最突出的。
但是这次特别说明的是代码过多的放到了try中,这样很容易让错误隐藏。
如果这样写就可以避免很多不必要的问题:
Transaction trans = db.getTransaction();
String s_cgbh = Decoder.getParameter(request, "cgbh");
String s_kwmc = Decoder.getParameter(request, "kwmc");
long l_kw = AutoEmbody(request, s_cgbh, s_kwmc);
StringBuffer delSqlBuf = new StringBuffer("DELETE FROM SLXX WHERE CGBH='").append(s_cgbh).append("'");
StringBuffer insertSqlBuf = new StringBuffer(128);
insertSqlBuf.append("INSERT INTO SLXX(CGBH,SLDM,SLMC,SLNF,ID) SELECT '")
.append(s_cgbh).append("',QKSYDM, QKSYMC,TO_CHAR(SYSDATE,'YYYY'),xmryxx_seq.nextval FROM LWQKXX,SLQK,QKSY WHERE LWQKXX.LSH=SLQK.LWQKLSH AND SLQK.QKSYDM=QKSY.QKSYDM AND LWQKXX.KWMC=' ")
.append(s_kwmc).append("'");
try {
trans.begin();
if (l_kw == 0) {
db.executeUpdate(delSqlBuf.toString());
db.executeUpdate(insertSqlBuf.toString());
}
db.executeUpdate(SqlSciencepaperManager.getSciencepaperInsertSql(request));
trans.commit();
} catch (Exception ex) {
trans.rollback();
throw ex;
}
分享到:
相关推荐
但是,维护工作不仅仅是读懂原有代码,而是需要在原有代码基础上作出修改。我们可以先想像没有统一风格的情况下,A完成开发以后,B进行维护加一段代码,过一段时间C又加一段代码。。。。。。直到有一天X看到那一大堆...
336 网吧维护\资料\WINDOWS的文件夹里的程序.TXT 19067 网吧维护\资料\WINDOWS蓝屏代码含意速查表.TXT 93 网吧维护\资料\WINDOWS隐藏启动文件位置.TXT 9324 网吧维护\资料\WINXPPRO优化设置~希望能对用XP的网管有...
接触编程代码有感.doc
BLDC有感代码,霍尔,六步换向,以实现
这段代码适用于多种场景,包括但不限于情人节、纪念日、生日等特殊时刻。它的目标是通过特效的展示和个性化的定制,表达浓浓的爱意和感情,让接收者感受到深深的关爱和温暖。 其他说明: - 这段代码可以在任何现代的...
268-功能感受(51单片机C语言实例Proteus仿真和代码)268-功能感受(51单片机C语言实例Proteus仿真和代码)268-功能感受(51单片机C语言实例Proteus仿真和代码)268-功能感受(51单片机C语言实例Proteus仿真和代码)268-功能...
ti有感交流感应电机FOC控制代码,PI控制,可以使用。用来控制3KW左右的交流感应电机,很强大。
代码之美,代码的魅力,程序代码的精髓,进入代码的世界感受魅力
要四分吧,毕竟是自己辛辛苦苦调试成功的。运行在ccs6.0.增加步进模块专门用于解决启动不起来的问题。有一些功能还没加但不影响调试或者是做实验。喜欢的大家多多支持
该文件利用C++以及easyx图形库(如果您不了解easyx图形库,建议先去学习一下其基本知识,不然代码可能有些难理解)实现了一个代码雨的效果。文件中包含了安装包,有兴趣的朋友可以在电脑上安装或是分享给自己的好...
学习用dmeo推荐:车源宝微信版:(附作者感受)适用1122版本(源代码+截图)学习用dmeo推荐:车源宝微信版:(附作者感受)适用1122版本(源代码+截图)学习用dmeo推荐:车源宝微信版:(附作者感受)适用1122版本(源...
直流无刷电机带HALL驱动代码,基于stm32F051单片机。基础驱动,可移植后自行优化调试。
BLCD 有传感器和无传感 FOC 源代码
这个是著名得国外开源本杰明电调得源代码,硬件平台是基于stm32f405rgt6芯片,软件基于chibios系统,源代码中实现了bldc,直流电机的控制,其中bldc得控制包含了有感和无感,方波和正弦波的控制算法,是学习开发大...
1.熟练掌握顺序结构程序设计; 2.掌握标准输入输出函数的基本用法; 3.熟练掌握基本运算符与基本数据类型; 4.练习调试与修改程序。 程序代码运行结果截图及心得体会
亲身实践的DQN学习资料,环境是gym里的经典CartPole(小车倒立摆)模型,目标是使倒立摆不倒且小车位置不出界。纯PyTorch框架,不像Tensorflow有各种兼容性警告。做了很好的可视化,可直观感受强化学习DQN的学习效果...
NULL 博文链接:https://czjxdm.iteye.com/blog/920560
Linux内核代码阅读心得体会,可以跟着作者阅读学习linux的思路和linux内核来个亲密接触
为了方便广大的朋友快速获取16位颜色代码,在此将代码表整理出来,供大家使 用,希望对大家有所帮助!另外经常看一看代码表,对颜色如何更加协调或对比更鲜明,会有更加直接的感受!