sql中字符串要用''引起来
还有强烈建议对字符串参数不要使用拼接sql的方法

解决方案 »

  1.   

    if (!position.equals("0")) {
    strsql.append(" and job.position='" + position+"'");
    }
    是这样的吗?
    但是这样为什么查询不出来结果?
      

  2.   

    查不出结果那是因为没有符合条件的记录,把sql语句打印出来检查一下
      

  3.   

    SQL HQL都有占位符.为什么不用?
      

  4.   

    从你的异常看,是因为出现了异常的字符,你把拼接后的字符串打印出来;还有,查询的时候拼接应该是if (!position.equals("0")) { 
    strsql.append(" and job.position='" + position+"'"); 
    } 没有记录是因为数据库中的数据没有满足条件的
      

  5.   

    对于这样的sql 呀,强烈建议你去用criteria ,expression 这个类去操作呀,criteria 可以获得list ;
    而expression 可以加入条件.eq 的方法,就能加入人的where 条件,相当简单啦!
    Session s=null;
    List list=null;
    Criteria ct=null;
    try {
    s=HibernateSessionFactory.getSession();
    ct=s.createCriteria(BillTable.class);
    if(billId.equals("")){
        ct.add(Expression.eq("billId","X10"));
    }else{
    ct.add(Expression.eq("billId", billId));
    }
    list=ct.list();


    } catch (HibernateException e) {
    // TODO 自动生成 catch 块
    e.printStackTrace();
    }finally{
    s.close();
    }
    if(list.size()==0){
    return false;
    }else{

    return true;
    }