sinat_32343219
S丶hyh
采纳率0%
2015-12-10 00:37

java本地程序运行效果与服务器运行效果不完全一致

我在本地写的一条循环添加语句“public boolean saveadd(List e){
String sqlstr="";
String[] sqlStrs = new String[e.size()];
for (int i = 0; i < sqlStrs.length; i++) {
E_c_wlcgdjModel w=e.get(i);
sqlstr += "insert into e_c_wlcgdj(noteno,rq,gys,dept,code,name,gg,price,sl,lb,sm,man,flag,corp_id,note_mo,cg_note,sysrq) values(" +
"'"+w.getNoteno()+"',to_date('"+w.getCg_rq()+"', 'yyyy-mm-dd'),'"+w.getDg_master()+"','"+w.getCg_dept()+"', " +
"'"+w.getCg_code()+"','"+w.getWl_sname()+"','"+w.getWl_ksize()+"','"+w.getDg_price()+"','"+w.getCg_sl()+"','计划','"+w.getCg_remark()+"', " +
"'"+w.getCg_man()+"','登记','"+w.getCorp_id()+"',F_GETID('WLCGDJMO', '"+w.getNoteno()+"',''),'"+w.getCg_mo()+"',sysdate )#";
sqlstr += "update e_c_wlsqmx set dg_note = '"+w.getNoteno()+"' where cg_mo = '"+w.getCg_mo()+"' #";
}
boolean sflag=cf.executeStatement(sqlstr.split("#"));
cf.close();
return sflag;
}”
但不知道为什么在服务器段运行,始终会在插入的时候漏掉一个字段,本地电脑并无问题,而且试过其他电脑也无问题,求教各位大神。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

5条回答

  • saint_sola o_树海_o 6年前

    删除服务器内容,从新部署试试

    点赞 评论 复制链接分享
  • daidaineteasy 晓呆同学 6年前

    个人感觉用“#”号分隔SQL语句,然后再通过“#”切片获取SQL语句不是很合理。
    如果某个参数中也有“#”号,那么我们再进行切片的时候,就会打乱我们之前定义的SQL语句,
    并且用“#”将这么多的SQL语句拼接在一起,也不方便我们的调试。

    既然有了 sqlStrs数组,并且一条就会产生一条insert语句和一条update语句,那么你直接定义长度为sqlStrs.length * 2 的数组来接收。
    然后再Debug调试,分别看一下我们的这些语句最终都是什么样子的,如果语句正确并且插入数据库还是会缺少字段,你就直接直接SQL语句,最后肯定能找到原因了。

    点赞 评论 复制链接分享
  • dcxy0 Q544471255 6年前

    在客户端和服务端都打印一下sqlstr,然后看下是否一致。

    点赞 评论 复制链接分享
  • enpterexpress 把分全给哥 6年前

    是不是漏掉第一行最后一个字段

    点赞 评论 复制链接分享
  • u011225629 君寞傲 6年前

    数据库的字段和你插入的字段是否匹配吗?

    点赞 评论 复制链接分享

相关推荐