適用於複雜的多表查詢
查詢所有對象,返回數組
@Test
public void test(){
//1.獲得session
Session session = HibernateUtils.getCurrentSession();
//2.獲得事務
Transaction tx = session.beginTransaction();
//3.執行操作
//3.1書寫sql語句
String sql = "select * from cst_customer";
//3.2創建sql查詢對象
NativeQuery sqlQuery = session.createSQLQuery(sql);
//3.3 調用方法查詢結果
List<Object[]> list = sqlQuery.list();
//sqlQuery.uniqueResult();
for (Object[] objs: list){
System.out.println(Arrays.toString(objs));
}
//4.提交事務
tx.commit();
}
查詢所有對象,返回對象
@Test
public void test2(){
//1.獲得session
Session session = HibernateUtils.getCurrentSession();
//2.獲得事務
Transaction tx = session.beginTransaction();
//3.執行操作
//3.1書寫sql語句
String sql = "select * from cst_customer";
//3.2創建sql查詢對象
NativeQuery sqlQuery = session.createSQLQuery(sql);
//將結果集封裝到對象中
sqlQuery.addEntity(Customer.class);
//3.3 調用方法查詢結果
List<Customer> list = sqlQuery.list();
//sqlQuery.uniqueResult();
System.out.println(list);
//4.提交事務
tx.commit();
}
條件查詢
@Test
public void test3(){
//1.獲得session
Session session = HibernateUtils.getCurrentSession();
//2.獲得事務
Transaction tx = session.beginTransaction();
//3.執行操作
//3.1書寫sql語句
String sql = "select * from cst_customer where cust_id = ?";
//3.2創建sql查詢對象
NativeQuery sqlQuery = session.createSQLQuery(sql);
sqlQuery.setParameter(1,1);
//將結果集封裝到對象中
sqlQuery.addEntity(Customer.class);
//3.3 調用方法查詢結果
List<Customer> list = sqlQuery.list();
//sqlQuery.uniqueResult();
System.out.println(list);
//4.提交事務
tx.commit();
}
分頁查詢
@Test
public void test4(){
//1.獲得session
Session session = HibernateUtils.getCurrentSession();
//2.獲得事務
Transaction tx = session.beginTransaction();
//3.執行操作
//3.1書寫sql語句
String sql = "select * from cst_customer limit ?,?";
//3.2創建sql查詢對象
NativeQuery sqlQuery = session.createSQLQuery(sql);
sqlQuery.setParameter(1,0);
sqlQuery.setParameter(2,4);
//將結果集封裝到對象中
sqlQuery.addEntity(Customer.class);
//3.3 調用方法查詢結果
List<Customer> list = sqlQuery.list();
//sqlQuery.uniqueResult();
System.out.println(list);
//4.提交事務
tx.commit();
}