通过select子句指定返回结果类型为Map
定义:select子句中使用new map指定查询结果的数据类型为map,并需要注意在获取值时,Map中的key值为属性在select语句中的相应索引值(从0开始),并且类型为字符串类型。

查询结果与List完全一致的

Map的get方法除了可以使用属性在select语句中的索引位置来获取查询结果,还可以通过select子句中属性取别名来获取。

以Map形式返回查询结果:new map(...)
Map的key是默认查询语句中对应的位置信息,但是String类型。
可以通过别名的方式修改key。
String hql = "select new map(s.name,s.tel) from Seller s";
String hql = "select new map(s.name as name,s.tel) from Seller as s";
Query query = session.createQuery(hql);
List<Map> maps = query.list();
for (Map m : maps) {
System.out.println(m.get("0"));
//System.out.println(m.get("name"));//使用别名
ystem.out.println(m.get("1"));
}
通过别名获取属性信息
通过别名的方式来获取值
以map的形式来进行返回,key为数字的字符串形式
hql-select字段时返回map
通过别名获取值
hql-select字段时返回map
通过Map返回查询结果 1.select子句中使用new map指定 2.key值为索引值,字符串类型,如果给查询字段指定了别名,则以该别名为key的值 注:使用Map集合时考虑使用字段的别名获取属性信息,这样相对于序号不容易犯错 e.g. public void testSelectCauseMap(){ String hql="select new map(s.name,s.tel as tel,s.address as address) from Seller s"; Query query=session.createQuery(hql); List<Map> maps=query.list(); for (Map map : maps) { System.out.println("name:"+map.get("0")); System.out.println("tel"+map.get("tel"));//使用字段的别名获取属性信息,不容易出错 System.out.println("address"+map.get("address")); } }