HQL之select初探

select返回形式的选择

这里写图片描述

这里写图片描述

形式一:

这里写图片描述

String hql = "select s.name,s.tel,s.address from Seller s";
Query query = session.createQuery(hql);
List<Object[]> list = query.list();
for (Object[] objs : list) {
    System.out.println("name :"+objs[0]);
    System.out.println("tel :"+objs[1]);
    System.out.println("address :"+objs[2]);
}
/**当查询一个属性时,不可以用objs[0];如下代码会报错,需要将*List<Object[]>换成List<Object>
*/
String hql = "select s.name from Seller s";
Query query = session.createQuery(hql);
List<Object[]> list = query.list();
for (Object[] objs : list) {
    System.out.println("name :"+objs[0]);
}       

形式二:

这里写图片描述

//只查一个属性时也可以用
String hql = "select new list(s.name)from Seller s";
Query query = session.createQuery(hql);
List<List> lists = query.list();
for (List list : lists) {
    System.out.println(list.get(0));            
}

形式三:

这里写图片描述

//如果没有给属性起别名的话,要用map.get("0");

String hql = "select new map(s.name as name,s.tel as tel) from Seller s";
Query query = session.createQuery(hql);
List<Map> maps = query.list();
for (Map map : maps) {
    System.out.println(map.get("name"));
    System.out.println(map.get("tel"));
    System.out.println(map.get("address"));
    System.out.println(map.get("star"));
    System.out.println("--------------------");
}

形式四:

这里写图片描述

//要查几个属性,就建立包含几个属性的构造器
String hql = "select new Seller(s.name,s.tel,s.address) from Seller s";
Query query = session.createQuery(hql);
List<Seller> sellers = query.list();
for (Seller seller : sellers) {
    System.out.println(seller.getName());
    System.out.println(seller.getTel());
    System.out.println(seller.getAddress());
    //打印不在hql语句中的,得到null
    System.out.println(seller.getWebsite());
    System.out.println("------------------------");
}

distinct关键字:

这里写图片描述

//在select语句中加上distinct关键字,使查询结果不重复
String hql = "select distinct c.sex from Customer c";
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值