此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【xhf1234】截止到2008-07-28 21:20:59的历史汇总数据(不包括此帖):
发帖的总数量:18                       发帖的总分数:1190                     每贴平均分数:66                       
回帖的总数量:20                       得分贴总数量:1                        回帖的得分率:5%                       
结贴的总数量:17                       结贴的总分数:1090                     
无满意结贴数:0                        无满意结贴分:0                        
未结的帖子数:1                        未结的总分数:100                      
结贴的百分比:94.44 %               结分的百分比:91.60 %                  
无满意结贴率:0.00  %               无满意结分率:0.00  %                  
值得尊敬

解决方案 »

  1.   

    public void findByParameter() {
    Session session = HibernateSessionFactory.getSession();
    Query q = session.createQuery("from Customers where cid=? and cname=?");
    q.setInteger(0, 1);
    q.setString(1, "aa");
    List<Customers> list = q.list();
    for (Customers c : list) {
    System.out.println(c.getCname());
    }
    }设定参数啊。
      

  2.   

    写个hql和sql差不多,不过是面向对象的
    如:
    string hql = “select u from User u where u.name=? and u.password=?
    session.createQuery(hql);
      

  3.   

    忘记要传参数了,set一下就可以了
      

  4.   

    把查询条件先赋值到那个实体类中,然后调用findByExample,这个是hibernate自动生成的
        public List findByExample(Person instance) {
            log.debug("finding Person instance by example");
            try {
                List results = getSession()
                        .createCriteria("Person")
                        .add(Example.create(instance))
                .list();
                log.debug("find by example successful, result size: " + results.size());
                return results;
            } catch (RuntimeException re) {
                log.error("find by example failed", re);
                throw re;
            }
        }    
      

  5.   

    建议使用getSession().createCriteria(),维护起来比较方便
      

  6.   

    hql.append(" update Sysmonthend set monendyymm = :monendyymm,logtime = sysdate ");
    hql.append(" where 1=1 ");
    hql.append(" and companycode = '***' ");
    hql.append(" and datatype = :datatype ");

    Query query = getSession().createQuery(hql.toString());
    query.setString("monendyymm", yymm);
    query.setString("datatype", datatype);

    query.executeUpdate();
      

  7.   

    String sql = "select clost.lid,cust.cname,link.lname,os.odate from " +
    "CustomerInfo cust,Clost clost,Orders os,Linkman link "+
    "where (cust.cid in os.ono)and(os.oid in clost.lid) and (link.lid in cust.cmanagerId)"+
    "and (link.lname like '%"+cmanager+"%') order by os.odate";
    多表查询
      

  8.   

    public void findByParameter() {
            Session session = HibernateSessionFactory.getSession();
            Query q = session.createQuery("from Customers where cid=? and cname=?");
            q.setInteger(0, 1);
            q.setString(1, "aa");
            List<Customers> list = q.list();
            for (Customers c : list) {
                System.out.println(c.getCname());
            }
        }1楼已经说的很详细了
      

  9.   

    qlrhoo:你好,请问在多个表中同时按两条件查询,怎么处理
      

  10.   

    可以在XXX.hbm.xml与XXX.hbm.xml映射文件中设置关联利用<set></set>配置一对多及多对多关联关系.<many-to-one>及<one-to-one>元素设置多对一和一对一关联关系。
    具体的讲解参考http://book.csdn.net/bookfiles/321/10032113046.shtml这个网页,讲的很详细。
    如果是直接查询,则只用修改查询的语句就可以。
    String sql = "select course.courseID,course.courseName,courseType.typeName from Course course,CourseType courseType where course.courseTypeID = courseType.typeID";
    我给出的是一个课程表和课程类型表之间的关联查询。
    而此查询返回的是多个Object[]的一个List,可以通过以下的方式取得其中的值。
    Query query = session.createQuery(sql);
    List list = query.list();
    List list0 = new ArrayList();
    if (list != null && list.size() > 0) {
    for (int i = 0; i < list.size(); i++) {
    Object[] obj = (Object[]) list.get(i);
    int courseID = (Integer) obj[0];
    String courseName = (String) obj[1];
    String typeName = (String) obj[2];
    CourseTypeNote ctn = new CourseTypeNote();
    ctn.setCourseID(courseID);
    ctn.setCourseName(courseName);
    ctn.setTypeName(typeName);
    list0.add(ctn);
    }
    这样就把你查询出来的数据重新放到了,List当中。
    我也是刚刚解决这个问题,希望对你有一些帮助。
      

  11.   

    用链式风格来写,简洁一些,如下: List listResult = getSession().createQuery("from Customers where cid=? and cname=?")
                                   .setParameter(0, 1)
                           .setParameter(1, "张三")
                           .list();