public class Demo01 {
/*
* Hql查询
*/
@Test
public void fun1() {
Session session = HibernateUtils.getSession();
Transaction transaction = session.beginTransaction();
//________________
//查询所有配置了映射文件的对象
//按对象给你封装好了
// String hql = "from java.lang.Object";
//排序,降序输出id
String hql = "from Customr order by cust_id ";
//集合函数与计算id的和预见,但结果接受
String hql1 = "select sum(cust_id) from Customer ";
//投影,查询
String hql2 ="select cust_id,cust_name from Customer";
//封装成一个对象的查询
String hql4 ="select new Customer(cust_id,cust_name) from Customer";
Query query = session.createQuery(hql4);
//可以转成其他基本数据类型
// Number number = (Number)query.uniqueResult();
// List<Object[]> list = query.list();
// for (Object[] objects : list) {
// System.out.println(Arrays.toString(objects));
// }
List<Customer> list =query.list();
System.out.println(list);
//________________
transaction.commit();
session.close();
}
/*
* Hql连接查询
*
*/
@Test
public void fun2() {
Session session = HibernateUtils.getSession();
Transaction transaction = session.beginTransaction();
//________________
//内连接查询(迫切 fetch)
//不迫切:返回的是一个集合,集合中保存的是Object[]数组
//数组中,保存是你查询两个对象
//迫切:只返回一个对象(直接写泛型)
String hql = "from Customer c inner join fetch c.linkMans";
Query query = session.createQuery(hql);
List<Customer[]> list = query.list();
System.out.println(list);
for (Customer[] customers : list) {
System.out.println(Arrays.toString(customers));
}
//________________
transaction.commit();
session.close();
}
/*
* 测试离线查询对象
*/
@Test
public void fun3() {
// String id = request.setp("id");
//创建离线对象(一般要用,就是跟servlet中使用)
DetachedCriteria criteria = DetachedCriteria.forClass(Customer.class);
//添加查询条件(全部与普通Criteria一致)
criteria.add(Restrictions.eq("cust_id", 1l));
criteria.add(Restrictions.eq("cust_name", "蓝鸥科技"));
//-----------------传递到dao层
Session session = HibernateUtils.getSession();
Transaction transaction = session.beginTransaction();
//组装离线层查询对象(赋值session)
Criteria c = criteria.getExecutableCriteria(session);
//获取查询结果,并返回
List list = c.list();
System.out.println(list);
//________________
transaction.commit();
session.close();
}
hibernate框架—表与表之间关系—Hql查询
最新推荐文章于 2022-04-07 17:57:35 发布