Hibernate学习记录2 HQL常规操作

来源:互联网 发布:windows loader.zip 编辑:程序博客网 时间:2024/05/17 00:02

HQL常规操作


查询全部

Session session=HibernateSessionFactory.getSession();String sqlStr="from Columns";Query query-session.createQuery(sqlStr);List<Columns> list=query.list();

查询部分属性

String sqlStr="select no,name from Columns";

条件查询

Session session=HibernateSessionFactory.getSession();String sqlStr="from Columns where lines>=? and lines<=?";Query query=session.createQuery(sqlStr);query.setInteger(0,5);query.setInteger(1,20);List<Columns> list=query.list();

按参数名字条件查询

String sqlStr="from Columns where lines>=:L1 and lines<=:L2";Query query=session.createQuery(sqlStr);query.setInteger("L1",5);query.setInteger("L2",10);List<Columns> list=query.list();

模糊条件查询

Session session=HibernateSessionFactory.getSession();String sqlStr="from Columns where name like '%教学%'";Query query=session.createQuery(sqlStr);List<Columns> list=query.list();

查询排序

String sqlStr="from Columns order by no desc";

多表联合查询

String sqlStr="select c.name,s.titles from Columns as c,Contents as s where c.id=s.columns order by c.name";

分组查询

String sqlStr="select c.name from Columns as c,Contents as s where c.id=s.columns group by c.name";

函数聚合查询

String sqlStr="select c.name,count(*) as number from Columns as c,Contents as s where c.id=s.columns group by c.name";Query query=session.createQuery(sqlStr);Long count=(Long)query.uniqueResult();String sqlStr1="select avg(b.lines) from Columns b";String sqlStr2="select min(b.lines),max(b.lines) from Columns b";

返回list

    List students=session.createQuery("select c.name,count(s) from Student s join s.classes c group by c.name order by c.name desc").list();    for(Iterator iterator=students.iterator();iterator.hasNext();){        Object[] obj=(Object[])iterator.next();        System.out.println(obj[0]+","+obj[1]);    }

子查询

String sqlStr="from Contents as s where s.columns in (from Columns as c where 'a'=c.name)";

分页

String sqlStr="from Contents";Query query = session.createQuery(sqlStr);int start=10;int size=5;query.setFirstResult(start);query.setMaxResults(size);List<Contents> list=query.list();
0 0
原创粉丝点击