我有一个sqlserver数据库,M表中4个字段(a,b,c,d),某字段为空,我用ibatis对起进行更新的时候,update M set a='111',b='111',c=null,d='111'    这个时候我的前台由于没有填写数据那么就是为null的,这个时候,如何把null值更新到数据库中,我发现前台不进行填写的话json传到后台是没用东西的,那么这个功能如何实现.
  
(其实我想知道一些ibatis神奇数字的问题,在线等答案)

解决方案 »

  1.   

    就是数据库,我要想数据库中插入null,该怎么实现.把null插入到数据库就行,我前台用的json传的数据.
      

  2.   

    在SQL MAP里可以做一些判断  传入的是什么值不管是不是NULL 你都可以在这里 过滤掉~~
      

  3.   

    你说的这个我知道的,sql map里面的确是有notnull 和notempty这些标签,但是我json传过来是这个样子的[我是好人,,32,2]  也就是说第二个根本没有任何东西   那么我的sql就会出现,update 表 set 表.a='我是好人',表.b=,表.c=32,表.d=2 where .......   这个样子sql就不正确了  所以也就是说ibatis认为我为null的时候它却没有给字段一个null
      

  4.   

    ibatis动态设置参数的时候好像可以避免的呀,或者你判断一下,做下处理。我用的是db2数据库,我不需要的参数在传递的时候不要在集合里加上也不会出错
      

  5.   


    string a="".equals(request["a"])?"null":"'"+request["a"]+"'";
    string b="".equals(request["b"])?"null":"'"+request["b"]+"'";
    string c="".equals(request["c"])?"null":"'"+request["c"]+"'";
    string d="".equals(request["d"])?"null":"'"+request["d"]+"'";string sql = "update M set a="+a+",b="+b+",c="+c+",d="+d;很多年没写java代码了,不知道ibatis。但是希望这点代码能给你点灵感。。
      

  6.   

    SQL MAP 里可以写 如果传入测参数为空
    SQL  SET 后面自己赋值
    理论这样
    UPDAT XXX 
    <条件不为空>
    set XX=XXX,
    <条件不为空>
    set XX=XXX,
    这样就可以了
    有些东西可以不用写在类里里面
      

  7.   

    直接回复null,肯定不行的,这个我已经试过.如果我不准备给他努力了的时候那岂不是错误了
      

  8.   

    ibatis对于null的处理我不是很懂,但是我用的是json,将前台数据传到后台,如果我的某个单元格中没有填写数据,那么传到后台就是什么也没有,也就是这个样子的['123',,3,3]  第二个参数什么也没有
      

  9.   

    貌似这样的数据库设计是有问题的,数据库就不应保存"Null"
      

  10.   

    这是三元表达式~~其实用好了 比 IF  什么的好看 但是 性能上 还是IF 强一点
      

  11.   

    wlj   你来踩就踩嘛  也不用这么鄙视我吧  你能解决不??     在我看来,凡是人家客户业务上提出了,那么设计是开发人员的事情,搞不好就是搞不好     我鄙视你
      

  12.   

    直接传递null就可以了啊 怎么就不行呢