相关文章
更多最近更新
更多为什么我的代码执行时会走else里的logger
2019-03-25 13:40|来源: 网路
以下是我的程序代码 为什么我走的if (tbYibanwupin != null)还会执行else中的
logger.debug("error in " + className + "doInsert()添加的一般物品不能为空 \n");
并且
else中的
String message = "添加的一般物品不能为空";
messForm = successTabMessage.setMessageForm(0, message);
这两句话没有走
/**
* 根据从dataBus取得的非空一般物品对象,调用dao的doInsert方法来完成数据的插入工作<br>
* 1.取出刑事案件的id及表名并将其存放于一般物品信息中的信息来源表名及信息来源id中<br>
* 2.插入一般物品表,然后将其表名及ID存放于物品汇总表及刑事案件中然后插入汇总表及更新案件
* @param dataBus中的一般物品对象不能为空
* @return 操作的结果消息及操作的对象
*/
public DataBus doInsert(DataBus dataBus)
{
if (dataBus == null)
return null;
//声明对象
XingShiAnJian xingShiAnJian = null;
XingShiAnJian[] xingShiAnJians = null;
WuPin wuPin = null;
WuPin[] wuPins = null;
TbYibanwupin tbYibanwupin = null; //一般物品
TbWphzb wphzb = null; //物品汇总
TbAjjbxx tbAjjbxx = null; //案件
// XianYiRen[] xianYiRens=null;
// XianYiRen xianYiRen=null;
// TbXyr tbXyr=null;
try
{
//取出dataBus中的对象
int len = 0;
if(dataBus.getPojos()!=null)
{
len = dataBus.getPojos().length;
xingShiAnJians = new XingShiAnJian[len];
xingShiAnJians = (XingShiAnJian[]) dataBus.getPojos();
xingShiAnJian = xingShiAnJians[0];
}
dao = new DAOBaseObject();
session = SessionControl.doGetSession(); //获得Session对象
dao.doSetSession(session); //赋予DAO对象Session
tm = new TransActionManager(session); //创建事务管理对象
tm.beginTransaction();
if (xingShiAnJian != null)
{
//从大对象中取出其属性
int length = 0;
tbAjjbxx = xingShiAnJian.getTbAjjbxx();
if(xingShiAnJian.getWupins()!=null)
{
wuPins = new WuPin[xingShiAnJian.getWupins().length];
wuPins = xingShiAnJian.getWupins();
wuPin = wuPins[0];
}
if(wuPin!=null)
{
tbYibanwupin = wuPin.getYibanwupin();
wphzb = wuPin.getWphzb();
}
}
Long tbAjjbxxId = null;
if(tbAjjbxx!=null)
{
tbAjjbxxId = tbAjjbxx.getAjjbxxid();
}
//如果接刑事案件基本信息不为空则插入案件,否则不允许办理
if (tbAjjbxxId != null)
{
tbAjjbxx = (TbAjjbxx) dao.doGetPojo(tbAjjbxxId, tbAjjbxx.getClass());
if (tbAjjbxx != null)
{
String bid = tbAjjbxx.getBid();
if (bid == null || bid.equals(""))
{
String message = "案件编号为空,不能进行新增一般物品操作";
messForm = successTabMessage.setMessageForm(0, message);
returnDataBus.setMessageForm(messForm);
returnDataBus.setPojos(null);
return returnDataBus;
}
Long tbYibanwupinId = null;
if (tbYibanwupin != null)
{
//插入一般物品
tbYibanwupin.setXxlyajbm("AJJBXX"); //信息来源案件表名
tbYibanwupin.setXxlyajid(tbAjjbxxId.toString()); //信息来源案件ID
tbYibanwupin.setShanchubiaoji("0"); //将一般物品中的删除标记置为0表明为可删除
tbYibanwupin.setJilushijian(Calendar.getInstance().getTime()); //设置记录时间
tbYibanwupin.setDuxiekongzhi("w"); //将读写控制设为可写入
dataMap = dao.doInsert(tbYibanwupin);
tbYibanwupinId = tbYibanwupin.getYibanwupinid(); //取出一般物品ID
if(wphzb==null) wphzb=new TbWphzb();
wphzb.setShanchubiaoji("0");
wphzb.setDuxiekongzhi("w");
wphzb.setJingshishijian(Calendar.getInstance().getTime());
//物品表名及ID
wphzb.setWupinbiaoming("YIBANWUPIN");
wphzb.setWpbmslbh(tbYibanwupinId.toString());
//案件表明及ID
wphzb.setXxlyajbm("AJJBXX"); //信息来源案件表名
wphzb.setXxlyajid(tbAjjbxxId.toString()); //信息来源案件ID
//信息来源业务表名
wphzb.setXxlyywbm("AJJBXX");
wphzb.setXxlyywid(tbAjjbxxId.toString());
//物品名称
wphzb.setWupinmingcheng(tbYibanwupin.getMingcheng());
//物品类型
wphzb.setWupinleixing("一般物品");
//物品数量
wphzb.setWupinshuliang(tbYibanwupin.getShuliang());
//物品价值
wphzb.setWupinjiazhi(tbYibanwupin.getJiazhi());
dataMap = dao.doInsert(wphzb);
Long wphzbId = wphzb.getWphzbid();
//更新一般物品
tbYibanwupin.setXxlyywbm("WPHZB");
tbYibanwupin.setXxlyywid(wphzbId.toString());
dataMap = dao.doUpdate(tbYibanwupin);
tm.commit();
/* //案件与物品相关联
if(tbAjjbxx.getAjqtxxslbh()!=null&&!tbAjjbxx.getAjqtxxslbh().equals(""))
{
String ajqtxxslbh = tbAjjbxx.getAjqtxxslbh();
ajqtxxslbh = ajqtxxslbh + "#" + wphzbId.toString();
tbAjjbxx.setSaryxxslbh(ajqtxxslbh);
}
else
{
tbAjjbxx.setAjqtxxbm("WPHZB");
tbAjjbxx.setAjqtxxslbh(wphzbId.toString());
}
dataMap = dao.doUpdate(tbAjjbxx);*/
//封装为一个大对象
xingShiAnJian = new XingShiAnJian();
xingShiAnJians=new XingShiAnJian[1];
xingShiAnJian.setJiebaojing(null);
xingShiAnJian.setTbAjjbxx(tbAjjbxx);
wuPin=new WuPin();
wuPin.setYibanwupin(tbYibanwupin);
wuPin.setWphzb(wphzb);
//封装一般物品
wuPins=new WuPin[1];
wuPins[0]=wuPin;
xingShiAnJian.setWupins(wuPins);
xingShiAnJian.setXianyirens(null);
xingShiAnJians[0] = xingShiAnJian;
returnDataBus.setPojos(xingShiAnJians);
messForm = successTabMessage.setMessageForm(dataMap);
}
else
{
String message = "添加的一般物品不能为空";
messForm = successTabMessage.setMessageForm(0, message);
logger.debug("error in " + className + "doInsert()添加的一般物品不能为空 \n");
}
}
else
{
String message = "案件不存在,不能进行新增一般物品操作";
messForm = successTabMessage.setMessageForm(0, message);
logger.debug("error in " + className + "doInsert()刑事案件不能为空 ;\n");
}
}
}
catch(Exception ex)
{
tm.rollback();
String message = "操作失败";
int code = 0;
messForm = successTabMessage.setMessageForm(code, message);
}
finally
{
SessionControl.doCloseSession();
returnDataBus.setMessageForm(messForm);
return returnDataBus;
}
}
为什么我走的if (tbYibanwupin != null)还会执行else中的
logger.debug("error in " + className + "doInsert()添加的一般物品不能为空 \n");
并且
else中的
String message = "添加的一般物品不能为空";
messForm = successTabMessage.setMessageForm(0, message);
这两句话没有走
是不是我的代码写的不规范,另请高手帮我规范一下代码的写法 谢谢了
问题补充:
最奇怪的是 他只执行了else 中的logger.debug()其他两条语句都不走,
???????
logger.debug("error in " + className + "doInsert()添加的一般物品不能为空 \n");
并且
else中的
String message = "添加的一般物品不能为空";
messForm = successTabMessage.setMessageForm(0, message);
这两句话没有走
/**
* 根据从dataBus取得的非空一般物品对象,调用dao的doInsert方法来完成数据的插入工作<br>
* 1.取出刑事案件的id及表名并将其存放于一般物品信息中的信息来源表名及信息来源id中<br>
* 2.插入一般物品表,然后将其表名及ID存放于物品汇总表及刑事案件中然后插入汇总表及更新案件
* @param dataBus中的一般物品对象不能为空
* @return 操作的结果消息及操作的对象
*/
public DataBus doInsert(DataBus dataBus)
{
if (dataBus == null)
return null;
//声明对象
XingShiAnJian xingShiAnJian = null;
XingShiAnJian[] xingShiAnJians = null;
WuPin wuPin = null;
WuPin[] wuPins = null;
TbYibanwupin tbYibanwupin = null; //一般物品
TbWphzb wphzb = null; //物品汇总
TbAjjbxx tbAjjbxx = null; //案件
// XianYiRen[] xianYiRens=null;
// XianYiRen xianYiRen=null;
// TbXyr tbXyr=null;
try
{
//取出dataBus中的对象
int len = 0;
if(dataBus.getPojos()!=null)
{
len = dataBus.getPojos().length;
xingShiAnJians = new XingShiAnJian[len];
xingShiAnJians = (XingShiAnJian[]) dataBus.getPojos();
xingShiAnJian = xingShiAnJians[0];
}
dao = new DAOBaseObject();
session = SessionControl.doGetSession(); //获得Session对象
dao.doSetSession(session); //赋予DAO对象Session
tm = new TransActionManager(session); //创建事务管理对象
tm.beginTransaction();
if (xingShiAnJian != null)
{
//从大对象中取出其属性
int length = 0;
tbAjjbxx = xingShiAnJian.getTbAjjbxx();
if(xingShiAnJian.getWupins()!=null)
{
wuPins = new WuPin[xingShiAnJian.getWupins().length];
wuPins = xingShiAnJian.getWupins();
wuPin = wuPins[0];
}
if(wuPin!=null)
{
tbYibanwupin = wuPin.getYibanwupin();
wphzb = wuPin.getWphzb();
}
}
Long tbAjjbxxId = null;
if(tbAjjbxx!=null)
{
tbAjjbxxId = tbAjjbxx.getAjjbxxid();
}
//如果接刑事案件基本信息不为空则插入案件,否则不允许办理
if (tbAjjbxxId != null)
{
tbAjjbxx = (TbAjjbxx) dao.doGetPojo(tbAjjbxxId, tbAjjbxx.getClass());
if (tbAjjbxx != null)
{
String bid = tbAjjbxx.getBid();
if (bid == null || bid.equals(""))
{
String message = "案件编号为空,不能进行新增一般物品操作";
messForm = successTabMessage.setMessageForm(0, message);
returnDataBus.setMessageForm(messForm);
returnDataBus.setPojos(null);
return returnDataBus;
}
Long tbYibanwupinId = null;
if (tbYibanwupin != null)
{
//插入一般物品
tbYibanwupin.setXxlyajbm("AJJBXX"); //信息来源案件表名
tbYibanwupin.setXxlyajid(tbAjjbxxId.toString()); //信息来源案件ID
tbYibanwupin.setShanchubiaoji("0"); //将一般物品中的删除标记置为0表明为可删除
tbYibanwupin.setJilushijian(Calendar.getInstance().getTime()); //设置记录时间
tbYibanwupin.setDuxiekongzhi("w"); //将读写控制设为可写入
dataMap = dao.doInsert(tbYibanwupin);
tbYibanwupinId = tbYibanwupin.getYibanwupinid(); //取出一般物品ID
if(wphzb==null) wphzb=new TbWphzb();
wphzb.setShanchubiaoji("0");
wphzb.setDuxiekongzhi("w");
wphzb.setJingshishijian(Calendar.getInstance().getTime());
//物品表名及ID
wphzb.setWupinbiaoming("YIBANWUPIN");
wphzb.setWpbmslbh(tbYibanwupinId.toString());
//案件表明及ID
wphzb.setXxlyajbm("AJJBXX"); //信息来源案件表名
wphzb.setXxlyajid(tbAjjbxxId.toString()); //信息来源案件ID
//信息来源业务表名
wphzb.setXxlyywbm("AJJBXX");
wphzb.setXxlyywid(tbAjjbxxId.toString());
//物品名称
wphzb.setWupinmingcheng(tbYibanwupin.getMingcheng());
//物品类型
wphzb.setWupinleixing("一般物品");
//物品数量
wphzb.setWupinshuliang(tbYibanwupin.getShuliang());
//物品价值
wphzb.setWupinjiazhi(tbYibanwupin.getJiazhi());
dataMap = dao.doInsert(wphzb);
Long wphzbId = wphzb.getWphzbid();
//更新一般物品
tbYibanwupin.setXxlyywbm("WPHZB");
tbYibanwupin.setXxlyywid(wphzbId.toString());
dataMap = dao.doUpdate(tbYibanwupin);
tm.commit();
/* //案件与物品相关联
if(tbAjjbxx.getAjqtxxslbh()!=null&&!tbAjjbxx.getAjqtxxslbh().equals(""))
{
String ajqtxxslbh = tbAjjbxx.getAjqtxxslbh();
ajqtxxslbh = ajqtxxslbh + "#" + wphzbId.toString();
tbAjjbxx.setSaryxxslbh(ajqtxxslbh);
}
else
{
tbAjjbxx.setAjqtxxbm("WPHZB");
tbAjjbxx.setAjqtxxslbh(wphzbId.toString());
}
dataMap = dao.doUpdate(tbAjjbxx);*/
//封装为一个大对象
xingShiAnJian = new XingShiAnJian();
xingShiAnJians=new XingShiAnJian[1];
xingShiAnJian.setJiebaojing(null);
xingShiAnJian.setTbAjjbxx(tbAjjbxx);
wuPin=new WuPin();
wuPin.setYibanwupin(tbYibanwupin);
wuPin.setWphzb(wphzb);
//封装一般物品
wuPins=new WuPin[1];
wuPins[0]=wuPin;
xingShiAnJian.setWupins(wuPins);
xingShiAnJian.setXianyirens(null);
xingShiAnJians[0] = xingShiAnJian;
returnDataBus.setPojos(xingShiAnJians);
messForm = successTabMessage.setMessageForm(dataMap);
}
else
{
String message = "添加的一般物品不能为空";
messForm = successTabMessage.setMessageForm(0, message);
logger.debug("error in " + className + "doInsert()添加的一般物品不能为空 \n");
}
}
else
{
String message = "案件不存在,不能进行新增一般物品操作";
messForm = successTabMessage.setMessageForm(0, message);
logger.debug("error in " + className + "doInsert()刑事案件不能为空 ;\n");
}
}
}
catch(Exception ex)
{
tm.rollback();
String message = "操作失败";
int code = 0;
messForm = successTabMessage.setMessageForm(code, message);
}
finally
{
SessionControl.doCloseSession();
returnDataBus.setMessageForm(messForm);
return returnDataBus;
}
}
为什么我走的if (tbYibanwupin != null)还会执行else中的
logger.debug("error in " + className + "doInsert()添加的一般物品不能为空 \n");
并且
else中的
String message = "添加的一般物品不能为空";
messForm = successTabMessage.setMessageForm(0, message);
这两句话没有走
是不是我的代码写的不规范,另请高手帮我规范一下代码的写法 谢谢了
问题补充:
anyasir 写道
if(){}else{}
只要没有出现既进了if 又进了else 就说明是你的条件问题了
如果都进了,那就 大条了
至于规范,完全可以看jdk源码的风格
只要没有出现既进了if 又进了else 就说明是你的条件问题了
如果都进了,那就 大条了
至于规范,完全可以看jdk源码的风格
最奇怪的是 他只执行了else 中的logger.debug()其他两条语句都不走,
???????
相关问答
更多-
苏州到吴江黎里镇怎么走?[2024-02-24]
1.首先到苏州汽车南站 2.然后买票到黎里汽车站 3.打个摩的【三轮的】到大西洋纺织厂 一说他们【旳司机】就知道了-- 希望我的回答对您有帮助。 -
PHP变量里的PHP代码怎么执行啊? - 技术问答[2021-10-23]
eval相当于自动加了起始print: hello world -
让我们分解最后一行: funk2(a + 1, funk2(a, a)) 它首先会评估funk2(a, a) ,而funk2(a, a)又返回一个值(假设它对应于x )。 然后它会评估a+1 ,其中a = 5 ,所以6 。 然后,最后它将调用函数funk2 : funk2(6, x) 而已! 您也可以像这样编写最后一行: b = a + 1 c = funk2(a, a) print(funk2(b, c)) Let's break down the last line only: funk2(a + ...
-
您应该使用普通的Runnable ,而不是坚持使用方法引用,而是需要一个包含方法调用的显式lambda表达式,捕获它需要的任何参数。 例如: logMethodExecTime(() -> m2(17, 37)); 请注意,lambda不一定只是一个方法调用。 这可以让你在测量的时候有更大的灵活性。 Instead of Supplier
you should use a plain Runnable, and instead of insisting on method references ... -
您设置被拒绝的执行策略让主叫方运行任务。 这意味着如果#execute中的任务被拒绝,调用线程(即您的主线程)将运行任务,这就是您所看到的。 更改该策略或处理#execute方法中的异常。 You set the rejected excecution policy to have the caller run the task. This means that if the task is rejected in #execute that the calling thread (ie. the main ...
-
我已经知道了。 我运行了你的代码,事实证明,除了主线程(在当前的ThreadGroup中)之外,还有另一个线程正在运行,甚至在所有其他线程之前。 所以,下面的打印语句给了我2的计数(参见initialCount): public static void main(String[] args) throws Exception{ Thread[] threads = new Thread[THREADS_COUNT]; int initialCount = Thread.ac ...
-
您可以在WndProc方法中设置一个断点,该方法在按Tab键时运行。 You can set a breakpoint in the WndProc method, which will run whenever Tab is pressed.
-
我认为你要问的是Javascript没有多线程的长线。 即 StartNewThread(AjaxLoop) mainThread:DoMoreStuffEvenIfAjaxLoopIsntComplete() 最近的我认为你可以达到这个虽然我自己使用它是与Web Workers http://www.w3schools.com/html/html5_webworkers.asp虽然这是真正适用于较新的浏览器。 What I think you are asking is something a long ...
-
在SequelizeJs中定义表时,在执行时会更改其名称(when defining a table in SequelizeJs its name is changed when executing)[2022-02-10]
您可以使用两个可用选项中的一个,这些选项可以放在sequelize.define方法的options中 freezeTableName tableName 根据sequelize文档(关于它如何根据模型定义命名数据库表) 默认情况下,sequelize会自动将所有传递的模型名称(define的第一个参数)转换为复数。 通过使用freezeTableName ,数据库表的名称将与您的模型名称完全相同。 另一方面,如果您想要完全自定义表名,则应使用tableName属性。 You can use one of ... -
当GC不(必须)运行并且程序完成其执行时会发生什么?(What happens when GC doesn't (have to) run and program finishes its execution?)[2023-05-29]
如果您的问题是:如果您的JVM在GC运行之前结束,内存会发生什么? 非常简单:完整的内存“返回”到操作系统并再次可用。 简而言之: 启动JVM时,会为其提供xx MB内存 当您的JVM发现内存不足时,GC会启动,以清除垃圾(以便JVM可以继续运行) 当您的JVM退出时,那些xx MB将返回操作系统 对于第3步,如果/第2步发生的次数是绝对不相关的。 最后:“堆”是JVM内部使用内存的方式。 操作系统只知道它给JVM的绝对内存块。 If your question is: what happens to th ...