问题描述
//根据编码取“内部单位”字段:只有公司本部才使用此函数privateString[]getInnerCorpByCode(StringxCorp)throwsException{String[]innerCorp=null;Stringbr="selectbasicinfopk,basicinfocode,basicinfovaluefromxx_contrasttablex1leftjoinxx_defaultinfotablex2onx1.pk_defaultinfopk=x2.pk_defaultinfopkwherex2.pk_basicdoc='0001V01000000000023L'andx2.pk_corp='1036'andx1.xternalvalue='"+xCorp+"'andx1.dr=0andx2.dr=0andx2.sysno='mcnc'";//Stringbr1="select";java.util.ArrayList<Object[]>list=(ArrayList)query.executeQuery(br,newArrayListProcessor());if(list!=null&&list.size()>0){innerCorp=newString[3];Object[]obj=(Object[])list.get(0);innerCorp[0]=(String)obj[0];innerCorp[1]=(String)obj[1];innerCorp[2]=(String)obj[2];}returninnerCorp;}上边的代码是VO接口的一个方法,在执行这个方法的时候会执行上述br的SQL语句,但是执行SQL语句时有一个问题,就是数据库中xx_defaultinfotable表里sysno这个字段可能会为空,就得先在数据库里执行updatexx_defaultinfotablesetsysno='mcnc'wherepk_basicdoc='0001V01000000000023L'andsysnoisnull条SQL语句使得sysno有值,但是在上面的方法体中,请问有谁有好的方法能解决把sysno这个空值能带入值呢,这里不能使用JDBC。
解决方案
解决方案二:
如果你可以修改這個method的內容就改成(x2.sysno='mcnc'ORx2.sysnoisnull)
解决方案三:
引用楼主dhytfzz的回复:
//根据编码取“内部单位”字段:只有公司本部才使用此函数privateString[]getInnerCorpByCode(StringxCorp)throwsException{String[]innerCorp=null;Stringbr="selectbasicinfopk,basicinfocode,basicinfovaluefr……
同意楼上,可以解决你的需求,另外不建议查询字段可为null,会影响查询效率,既然要更新null值为“mcnc”,何不设置默认值为"mcnc"呢;-)
解决方案四:
sysno这个空值能带入值,是什么意思,不理解。能否解释一下。