話不多說直接上代碼
/**
* 4.QBC查詢全部
*/
@Test
public void testSelect1() {
//獲取session對象
Session session = HibernateUtils.getSession();
//開啓事務
Transaction tx = session.beginTransaction();
//寫具體邏輯crud(增刪改查)操作
//1創建Criteria對象 createCriteria()在hibernate5.2之後過時了
// Criteria criteria = session.createCriteria(Student.class);
// List<Student> list = criteria.list();
// for (Student student : list) {
// System.out.println(student);
// }
//新的查詢方式
//1.創建CriteriaBuilder對象
//注意導入的包是import javax.persistence.criteria.CriteriaQuery;
CriteriaBuilder criteriaBuilder = session.getCriteriaBuilder();
//2.獲取CriteriaQuery對象
CriteriaQuery<Student> createQuery = criteriaBuilder.createQuery(Student.class);
//3.指定根條件
createQuery.from(Student.class);
//4執行查詢
List<Student> List = session.createQuery(createQuery).getResultList();
for (Student student : List) {
System.err.println(student);
}
//提交事務
tx.commit();
// 關閉資源
HibernateUtils.close();
}
模糊查詢
/**
* 4.QBC查詢
* 模糊查詢
*/
@Test
public void testSelect2() {
//獲取session對象
Session session = HibernateUtils.getSession();
//開啓事務
Transaction tx = session.beginTransaction();
//寫具體邏輯crud(增刪改查)操作
//新的查詢方式
//1.創建CriteriaBuilder對象
//注意導入的包是import javax.persistence.criteria.CriteriaQuery;
CriteriaBuilder criteriaBuilder = session.getCriteriaBuilder();
//2.獲取CriteriaQuery對象
CriteriaQuery<Student> createQuery = criteriaBuilder.createQuery(Student.class);
//3.指定根條件
Root<Student> root = createQuery.from(Student.class);
//root.get("name") "name"是實體類的屬性名稱
createQuery.where(criteriaBuilder.like(root.get("name"), "%三%"));
//4執行查詢
List<Student> List = session.createQuery(createQuery).getResultList();
for (Student student : List) {
System.err.println(student);
}
//提交事務
tx.commit();
// 關閉資源
HibernateUtils.close();
}