美文网首页
Hibernate中的查询

Hibernate中的查询

作者: 我是邱邱 | 来源:发表于2018-08-23 20:40 被阅读0次

    以下查询语句都是用实体类为User为例:

    1.查询表中所有:

    Query query = session.createQuery("from User");

    2.查询指定的列:

    可以为表指定别名:Query query = session.createQuery("select u.name,u.age from User u");

    可以直接通过实体类中的属性:

                Query query = session.createQuery("select u.name,u.age from User u");

    3.将查询到的数据直接放在对象中:

        Query query = session.createQuery("select new User(u.name,u.age) from User u");

    4.条件查询:

        如果条件是从其他地方传递过来的:

                            方式一:Query query = session.createQuery("from User where id=?");

    为参数赋值有两种方式:

            (1):如果知道参数的类型,可以直接通过例如 query.setInteger(索引, 要赋旳值);索引的方式赋值,索引从0开始,即第一个占位符的索引为0;

            (2):query.setParameter(0, 1);第一个参数也是索引,第二个参数表示要赋的值

                           方式二:Query query = session.createQuery("from User where id=:uid");

    为参数起别名:赋值方式:query.setParameter("uid", 4);

    5.between and 条件查询:

    Query query = session.createQuery("from User where age between :age1 and :age2");

    6.模糊查询:

    Query query = session.createQuery("from User where name like ?");

    Query query = session.createQuery("from User where name like :name1");

    7.聚合函数:

    count avg max min sum

    统计表中的记录数:

    Query query = session.createQuery("select count(*) from User");

    按照年龄分组:

    Query query = session.createQuery("select age,count(*) from User group by age");

    按照年龄分组并且查询年龄个数大于1的:(having用于筛选分组后符合条件的数据

    select age,count(*) from User group by age having count(*)>1;

    8.分组查询:

    Query query = session.createQuery("from User order by age");(默认情况下按照升序方式

    Query query = session.createQuery("from User order by age desc");(指定了排序方式)

    相关文章

      网友评论

          本文标题:Hibernate中的查询

          本文链接:https://www.haomeiwen.com/subject/knomiftx.html