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)固定參數(shù)
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)位置參數(shù)
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)命名參數(shù)
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]);
}
//執(zhí)行的過程中存在奇怪的問題,只查詢一個表,只查詢一列時候才出現(xiàn)的錯誤,只要選擇兩列以上就沒問題了
//查詢兩個以上表格時,也存在該問題
4.連接
根據(jù)子類查找父類信息
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]);
}
//根據(jù)父類查找子類
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());
}
}
//根據(jù)父類查找子類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());
}