1.什么是hql
HQL是Hibernate Query Language的缩写,提供更加丰富灵活、更为强大的查询能力;HQL更接近SQL语句查询语法。
3.1.2返回多个对象
/**
* hql语句结果集处理情况1
* 返回多个对象 注意数据库字段不能为null
*/
public static void test2(){
Session session = SessionFactoryUtils.openSession();
Transaction transaction = session.beginTransaction();
String hql=“from Student”;
Query query = session.createQuery(hql);
List list=query.list();
for (Object o : list) {
System.out.println(o);
}
transaction.commit();
SessionFactoryUtils.closeSession();
}
结果:
3.2返回字符串
/**
* hql语句结果集处理情况2
* 返回字符串
*/
public static void test3(){
Session session = SessionFactoryUtils.openSession();
Transaction transaction = session.beginTransaction();
String hql=“select sname from Student where sid=1”;
Query query = session.createQuery(hql);
Object obj=query.getSingleResult();
System.out.println(obj);
transaction.commit();
SessionFactoryUtils.closeSession();
}
结果:
3.3返回数组
/**
* hql语句结果集处理情况3
* 返回数组
*/
public static void test4(){
Session session = SessionFactoryUtils.openSession();
Transaction transaction = session.beginTransaction();
String hql=“select sid,sname,version from Student where sid=1”;
Query query = session.createQuery(hql);
Object obj=query.getSingleResult();
System.out.println(Arrays.toString((Object[])obj));
transaction.commit();
SessionFactoryUtils.closeSession();
}
结果:
3.4返回Map
/**
* hql语句结果集处理情况4
* 返回Map
*/
public static void test5(){
Session session = SessionFactoryUtils.openSession();
Transaction transaction = session.beginTransaction();
String hql=“select new map(sid as sid,sname as sname,version as version) from Student where sid=1”;
Query query = session.createQuery(hql);
Object obj=query.getSingleResult();
System.out.println(obj);
transaction.commit();
SessionFactoryUtils.closeSession();
}
结果:
3.5查询多列返回对象(注意对象的构造方法)
/**
* hql语句结果集处理情况5
* 查询多列返回对象
*/
public static void test6(){
Session session = SessionFactoryUtils.openSession();
Transaction transaction = session.beginTransaction();
String hql=“select new Student (sid,sname)from Student where sid=1”;
Query query = session.createQuery(hql);
Object obj=query.getSingleResult();
System.out.println(obj.getClass().getName());
System.out.println(obj);
transaction.commit();
SessionFactoryUtils.closeSession();
}
结果:
4.2 :命名参数
/**
* hql命名参数
*/
public static void test7(){
Session session = SessionFactoryUtils.openSession();
Transaction transaction = session.beginTransaction();
String hql=“from Student where sid in :ids”;
Query query = session.createQuery(hql);
//这里使用 query.setParameter(0,1)报错
// query.setParameter(“id”,1);//这个是传单个参数
// 如果使用in的话
List ids=new ArrayList();
ids.add(1);
ids.add(2);
query.setParameterList(“ids”,ids);
Object obj = query.getSingleResult();
System.out.println(obj.getClass().getName());
System.out.println(obj);
transaction.commit();
SessionFactoryUtils.closeSession();
}
5.连接查询
public static void test8(){
Session session = SessionFactoryUtils.openSession();
Transaction transaction = session.beginTransaction();
String hql="select new map(oi.order_item_id,o.order_id) from Order o,OrderItem oi where o.order_id=oi.oid ";
Query query = session.createQuery(hql);
List list=query.list();
for (Object o : list) {
System.out.println(o);
}
transaction.commit();
SessionFactoryUtils.closeSession();
}
结果:
/**
* 聚合函数
*/
public static void test9(){
Session session = SessionFactoryUtils.openSession();
Transaction transaction = session.beginTransaction();
String hql="select count(sid)from Student ";
Query query = session.createQuery(hql);
Object singleResult = query.getSingleResult();
System.out.println(singleResult);
transaction.commit();
SessionFactoryUtils.closeSession();
}
7.hql分页
/**
* hql分页
* 查询第二页每页三条
*/
public static void test10() {
Session session = SessionFactoryUtils.openSession();
Transaction transaction = session.beginTransaction();
String hql = "from Book ";
Query query = session.createQuery(hql);
int page = 2;
int offeset = 3;
query.setFirstResult(page * offeset);
query.setMaxResults((page - 1) * offeset);
List list = query.list();
for (Object o : list) {
System.out.println(o);
}
transaction.commit();
SessionFactoryUtils.closeSession();
}
作者:yjt520557
来源:CSDN
原文:https://blog.csdn.net/yjt520557/article/details/84571348
版权声明:本文为博主原创文章,转载请附上博文链接!1.什么是hql
HQL是Hibernate Query Language的缩写,提供更加丰富灵活、更为强大的查询能力;HQL更接近SQL语句查询语法。
3.1.2返回多个对象
/**
* hql语句结果集处理情况1
* 返回多个对象 注意数据库字段不能为null
*/
public static void test2(){
Session session = SessionFactoryUtils.openSession();
Transaction transaction = session.beginTransaction();
String hql=“from Student”;
Query query = session.createQuery(hql);
List list=query.list();
for (Object o : list) {
System.out.println(o);
}
transaction.commit();
SessionFactoryUtils.closeSession();
}
结果:
3.2返回字符串
/**
* hql语句结果集处理情况2
* 返回字符串
*/
public static void test3(){
Session session = SessionFactoryUtils.openSession();
Transaction transaction = session.beginTransaction();
String hql=“select sname from Student where sid=1”;
Query query = session.createQuery(hql);
Object obj=query.getSingleResult();
System.out.println(obj);
transaction.commit();
SessionFactoryUtils.closeSession();
}
结果:
3.3返回数组
/**
* hql语句结果集处理情况3
* 返回数组
*/
public static void test4(){
Session session = SessionFactoryUtils.openSession();
Transaction transaction = session.beginTransaction();
String hql=“select sid,sname,version from Student where sid=1”;
Query query = session.createQuery(hql);
Object obj=query.getSingleResult();
System.out.println(Arrays.toString((Object[])obj));
transaction.commit();
SessionFactoryUtils.closeSession();
}
结果:
3.4返回Map
/**
* hql语句结果集处理情况4
* 返回Map
*/
public static void test5(){
Session session = SessionFactoryUtils.openSession();
Transaction transaction = session.beginTransaction();
String hql=“select new map(sid as sid,sname as sname,version as version) from Student where sid=1”;
Query query = session.createQuery(hql);
Object obj=query.getSingleResult();
System.out.println(obj);
transaction.commit();
SessionFactoryUtils.closeSession();
}
结果:
3.5查询多列返回对象(注意对象的构造方法)
/**
* hql语句结果集处理情况5
* 查询多列返回对象
*/
public static void test6(){
Session session = SessionFactoryUtils.openSession();
Transaction transaction = session.beginTransaction();
String hql=“select new Student (sid,sname)from Student where sid=1”;
Query query = session.createQuery(hql);
Object obj=query.getSingleResult();
System.out.println(obj.getClass().getName());
System.out.println(obj);
transaction.commit();
SessionFactoryUtils.closeSession();
}
结果:
4.2 :命名参数
/**
* hql命名参数
*/
public static void test7(){
Session session = SessionFactoryUtils.openSession();
Transaction transaction = session.beginTransaction();
String hql=“from Student where sid in :ids”;
Query query = session.createQuery(hql);
//这里使用 query.setParameter(0,1)报错
// query.setParameter(“id”,1);//这个是传单个参数
// 如果使用in的话
List ids=new ArrayList();
ids.add(1);
ids.add(2);
query.setParameterList(“ids”,ids);
Object obj = query.getSingleResult();
System.out.println(obj.getClass().getName());
System.out.println(obj);
transaction.commit();
SessionFactoryUtils.closeSession();
}
5.连接查询
public static void test8(){
Session session = SessionFactoryUtils.openSession();
Transaction transaction = session.beginTransaction();
String hql="select new map(oi.order_item_id,o.order_id) from Order o,OrderItem oi where o.order_id=oi.oid ";
Query query = session.createQuery(hql);
List list=query.list();
for (Object o : list) {
System.out.println(o);
}
transaction.commit();
SessionFactoryUtils.closeSession();
}
结果:
/**
* 聚合函数
*/
public static void test9(){
Session session = SessionFactoryUtils.openSession();
Transaction transaction = session.beginTransaction();
String hql="select count(sid)from Student ";
Query query = session.createQuery(hql);
Object singleResult = query.getSingleResult();
System.out.println(singleResult);
transaction.commit();
SessionFactoryUtils.closeSession();
}
7.hql分页
/**
* hql分页
* 查询第二页每页三条
*/
public static void test10() {
Session session = SessionFactoryUtils.openSession();
Transaction transaction = session.beginTransaction();
String hql = "from Book ";
Query query = session.createQuery(hql);
int page = 2;
int offeset = 3;
query.setFirstResult(page * offeset);
query.setMaxResults((page - 1) * offeset);
List list = query.list();
for (Object o : list) {
System.out.println(o);
}
transaction.commit();
SessionFactoryUtils.closeSession();
}