继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

HQL数据查询用法与举例

雷欧海特
关注TA
已关注
手记 2
粉丝 0
获赞 20

练习一:
1.查询商品的名称、价格、所属商家名称、类别。
2.查询范围限制类别与"书"相关,价格不低于10元的商品。
3.查询结果按照商品的所属商家名称排序,价格降序和商品名称升序排序。

    @Test
    public void Exercise01() {
        String hql = "select c.name,c.price,seller.name,c.category from "
                + "Commodity c where c.category like '%书%' and c.price > 10"
                + "order by seller.name asc,c.price desc,c.name asc";
        System.out.println(hql);
        Query query = session.createQuery(hql);

        List<Object[]> List = query.list();
        for (Object[] objs : List) {
            System.out.println("name:"+objs[0]);
            System.out.println("price:"+objs[1]);
            System.out.println("seller name:"+objs[2]);
            System.out.println("category:"+objs[3]);
        }
    }

练习二:
1.查询订单的客户姓名、交易日期、订单状态、订单金额。
2.查询范围限制在交易日期为2015-05-01到2015-06-01之间。订单状态为已发货或者已付款、订单金额大于1000元的订单信息。
3.查询结果按照订单状态升序、交易日期降序、订单金额降序排序

    @Test
    public void Exercise02() {
        String hql = "select new list(customer.name, o.tradeDate,o.status,o.amount)"
                + "from Order o where o.status in ('已发货','已付款') and o.tradeDate between '2015-05-01' and '2015-06-01' "
                + "and o.amount > 1000 order by o.status asc,o.tradeDate desc,o.amount desc";
        System.out.println(hql);
        Query query = session.createQuery(hql);

        List<List> Lists = query.list();
        for (List list : Lists) {
            System.out.println("name:"+list.get(0));
            System.out.println("tradedate:"+list.get(1));
            System.out.println("status:"+list.get(2));
            System.out.println("amount:"+list.get(3));
        }
    }
打开App,阅读手记
3人推荐
发表评论
随时随地看视频慕课网APP