js null到java处理.

本文介绍了解决TivoliDirectoryIntegrator软件中数据插入数据库时出现的字段长度超限问题。通过分析代码发现,对null值的不当处理导致字符串长度超出数据库字段限制。通过对代码逻辑的调整,成功解决了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨日调试Tivoli Directory Integrator软件的脚本.从webservice里面读取数据写入到数据库里报错.

提示数据库字段长度不够,插入的数据长度超出允许值.

通过打印语句查看task.logmsg("@@@@@@@@@@@"+tmp+"#################");

发现打印出来的值是@@@@@@@@@@@00000000000000000000000000000000null#################.

36位?果然超过数据库限制的32位.最后那段null是怎么回事,看来问题出在null的处理上.

看来是自己写的jar出问题了.分析代码:

 

package timegeter;

 

public class Paddingzero {

 

public String Paddingzero(String is) {

StringBuffer sb = new StringBuffer();

String s = is;

int idlength = 0;

if (s == null) {

idlength = 0;

} else

idlength = s.length();

if (idlength < 32) {

for (int i = 0; i < 32 - idlength; i++) {

sb.append(0);

}

sb.append(s);   //看来问题出在这里了

//if (s != null) {

//sb.append(s);

//}

System.out.print(sb);

return sb.toString();

} else if (idlength > 32) {

sb.append(s);

for (int i = 0; i < idlength - 32; i++) {

sb.deleteCharAt(0);

}

System.out.print(sb.toString());

return sb.toString();

} else

System.out.print(is);

return is;

}

 

public static void main(String args[]) {

Paddingzero pz = new Paddingzero();

pz.Paddingzero("null");

 

}

}

代码主要去实现补零操作,对于不足32位的补成32位的,超过32位的去掉前面的零.
sb.append(s);null不是空,而是作为字符附加上去了.
修改成if (s != null) {
sb.append(s);
}解决.看来js去取值,发现为空,传递null给java.通过判断是否为空,进行处理.最后进行附加,null作为字符被附加上去.此处超出我的意料了.附加一个null,null却并不表示为空.导致取得的字符超出长度规定.
看来是对null理解不清晰导致的.万恶的null呀.

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值