没有了,在怎么改也差不多了。
既然痛苦,最好的方法就是你就应该开始考虑ormapping工具了,这样方便而且代码很干净,也不用你set了,toplink还不错,就是有点贵。

解决方案 »

  1.   

    如果你非要用PreparedStatement,我有一个办法,给你,不过要损失效率的:
    SELECT …… FROM TableName
    WHERE (你的必须的条件)
    AND ( 1 = ? staff_name = ? ) 
    AND ( 2 = ? in_phone = ? ) 
    AND ( 3 = ? out_phone = ? )
    调用的时候
    if(!isBlankOrNull(srf.getSalesLogin()))  {
      ps.setInt( 1, 1 );
    } else {
      ps.setInt( 1, 2 ); //2 你可以换成其他的数字,别是1就可以了
    }
    其他的类似。
      

  2.   

    忘了1 = ? staff_name = ?之间加一个OR
    改为1 = ? OR staff_name = ?
      

  3.   

    高!
    虽然不能真正解决问题,但可用O/R Mapping的玩意看了好久,天资不行,不懂