String sql="select * from user where userid=? and username=?";
Object[] args=new Object[]{userid,username};
getJdbcTemplate().queryForList(sql, args);我想知道,如果我不想把username作为查询条件,改怎么写?我传个null他默认查的是我username is null的数据

解决方案 »

  1.   

    String sql="select * from user where userid=?";
    Object[] args=new Object[]{userid};
      

  2.   

    用DetachedCriteria 吧,代码:DetachedCriteria dc = DetachedCriteria.forClass(User.class);
    if(null != userid)
       dc.add(Restrictions.eq("", userid);
    if(null != username)
       dc.add(Restrictions.eq("username", username);
    getHibernateTemplate().findByCriteria(dc);
      

  3.   

    用DetachedCriteria 吧,代码:DetachedCriteria dc = DetachedCriteria.forClass(User.class);
    if(null != userid)
       dc.add(Restrictions.eq("userid", userid);
    if(null != username)
       dc.add(Restrictions.eq("username", username);
    getHibernateTemplate().findByCriteria(dc);
      

  4.   

    他用的是jdbc你教他用hibernate的查询,有点不妥。。楼主,帮你修改一下,更简单
    String sql="select * from user where userid=?";
    getJdbcTemplate().queryForList(sql, userid);你完全可以写成这样,不用再去创建一个Object数组,因为queryForList的参数是Object...类型的
      

  5.   

    楼上正解,这确实是用spring framework JDBC操作数据库