打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
HQL常用查询
1.全选
      org.hibernate.Query query = session.createQuery("from Student");
      java.util.Iterator iterator = query.list().iterator();
      tx.commit();
      while (iterator.hasNext()){
             Student student = (Student)iterator.next();
             System.out.println("--------------------------------");
             System.out.println(student.getStudentId());
             System.out.println(student.getName());    
      }
       
注意:查询语句中的不是表格名而是对象名,所以必须大写
 
2.选择
 (1)固定参数
      org.hibernate.Query query = session.createQuery("from Student s where s.name='朱红'");
      java.util.Iterator iterator = query.list().iterator();
      tx.commit();
      while (iterator.hasNext()){
             Student student = (Student)iterator.next();
             System.out.println("--------------------------------");
             System.out.println(student.getStudentId());
             System.out.println(student.getName());    
}
 (2)位置参数
      org.hibernate.Query query = session.createQuery("from Student s where s.id=?");
      query.setParameter(0,"001");
      java.util.Iterator iterator = query.list().iterator();
      tx.commit();
      while (iterator.hasNext()){
             Student student = (Student)iterator.next();
             System.out.println("--------------------------------");
             System.out.println(student.getStudentId());
             System.out.println(student.getName());    
      }
 (3)命名参数
      org.hibernate.Query query = session.createQuery("from Student s where s.id=:student_id");
      query.setParameter("student_id","007");
      java.util.Iterator iterator = query.list().iterator();
      tx.commit();
3.投影
  org.hibernate.Query query = session.createQuery("select s.studentId,s.name from Student s ");
      java.util.Iterator iterator = query.list().iterator();
     
      while (iterator.hasNext()){
             Object[] row = (Object[])iterator.next();
             System.out.println("--------------------------------");
             System.out.println((String)row[0]);
}
 
//执行的过程中存在奇怪的问题,只查询一个表,只查询一列时候才出现的错误,只要选择两列以上就没问题了
//查询两个以上表格时,也存在该问题
 
4.连接
根据子类查找父类信息
org.hibernate.Query query = session.createQuery("select c.id,c.className from Zlass c inner join c.students s where s.studentId='001'");
java.util.Iterator iterator = query.list().iterator();
     
while (iterator.hasNext()){
             Object[] row = (Object[])iterator.next();
             System.out.println("--------------------------------");
             System.out.println((String)row[0]+(String)row[1]);
}
 
//根据父类查找子类
org.hibernate.Query query = session.createQuery("from Zlass c where c.id='971002'");
      java.util.Iterator iterator = query.list().iterator();
     
      while (iterator.hasNext()){
          Zlass row = (Zlass)iterator.next();
             java.util.Iterator i = row.getStudents().iterator();
             while(i.hasNext()){
                 Student s = (Student)i.next();
            System.out.println("--------------------------------");
            System.out.println(s.getStudentId()+" "+s.getName());
        }
      }
 //根据父类查找子类2,使用elements
 org.hibernate.Query query = session.createQuery("select elements(c.students) from Zlass c where c.id='971002'");
      java.util.Iterator iterator = query.list().iterator();
     
      while (iterator.hasNext()){
                 Student s = (Student)iterator.next();
            System.out.println("--------------------------------");
            System.out.println(s.getStudentId()+" "+s.getName());
      }
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
hibernate的查询缓存
hibernate缓存
HQL(Hibernate Query Language)
hibernate的缓存
Hibernate的hql语句查询
Hibernate的个人整理笔记
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服