首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Hibernate之HQL小结(转)

2013-11-25 
Hibernate之HQL总结(转)1. 查询整个映射对象所有字段?Java代码?//直接from查询出来的是一个映射对象,即:查

Hibernate之HQL总结(转)

1. 查询整个映射对象所有字段

?

Java代码?

//直接from查询出来的是一个映射对象,即:查询整个映射对象所有字段 ? ? ?

? ? ? ? String hql = "from Users"; ? ? ?

? ? ? ? Query query = session.createQuery(hql); ? ? ?

? ? ? ? ? ? ??

? ? ? ? List<Users> users = query.list(); ? ? ?

? ? ? ? for(Users user : users){ ? ? ?

? ? ? ? ? ? System.out.println(user.getName() + " : " + user.getPasswd() + " : " + user.getId()); ? ? ?

? ? ? ? } ? ? ?

? ? ?

?输出结果为: ? ? ?

name1 : password1 : 1 ? ??

name2 : password2 : 2 ? ??

name3 : password3 : 3 ? ?

[java] view plaincopy

//直接from查询出来的是一个映射对象,即:查询整个映射对象所有字段 ? ??

? ? ? ? String hql = "from Users"; ? ??

? ? ? ? Query query = session.createQuery(hql); ? ??

? ? ? ? ? ? ?

? ? ? ? List<Users> users = query.list(); ? ??

? ? ? ? for(Users user : users){ ? ??

? ? ? ? ? ? System.out.println(user.getName() + " : " + user.getPasswd() + " : " + user.getId()); ? ??

? ? ? ? } ? ??

? ??

?输出结果为: ? ??

name1 : password1 : 1 ? ?

name2 : password2 : 2 ? ?

name3 : password3 : 3 ? ?

?

?

2.查询单个字段?

?

Java代码?

//查询单个字段 ? ? ?

? ? ? ? String hql = " select name from Users"; ? ? ?

? ? ? ? Query query = session.createQuery(hql); ? ? ?

? ? ? ? ? ? ??

? ? ? ? List<String> list = query.list(); ? ? ?

? ? ? ? for(String str : list){ ? ? ?

? ? ? ? ? ? System.out.println(str); ? ? ?

? ? ? ? } ? ? ?

输出结果为: ? ? ?

name1 ? ? ?

name2 ? ? ?

name3 ? ?

[java] view plaincopy

//查询单个字段 ? ??

? ? ? ? String hql = " select name from Users"; ? ??

? ? ? ? Query query = session.createQuery(hql); ? ??

? ? ? ? ? ? ?

? ? ? ? List<String> list = query.list(); ? ??

? ? ? ? for(String str : list){ ? ??

? ? ? ? ? ? System.out.println(str); ? ??

? ? ? ? } ? ??

输出结果为: ? ??

name1 ? ??

name2 ? ??

name3 ? ?

?

?

3.查询其中几个字段?

?

?

Java代码?

//查询其中几个字段 ? ? ?

? ? ? ? String hql = " select name,passwd from Users"; ? ? ?

? ? ? ? Query query = session.createQuery(hql); ? ? ?

? ? ? ? //默认查询出来的list里存放的是一个Object数组 ? ? ?

? ? ? ? List<Object[]> list = query.list(); ? ? ?

? ? ? ? for(Object[] object : list){ ? ? ?

? ? ? ? ? ? String name = (String)object[0]; ? ? ?

? ? ? ? ? ? String passwd = (String)object[1]; ? ? ?

? ? ? ? ? ? ? ? ??

? ? ? ? ? ? System.out.println(name + " : " + passwd); ? ? ?

? ? ? ? } ? ? ?

输出结果为: ? ? ?

name1 : password1 ? ? ?

name2 : password2 ? ? ?

name3 : password3 ? ?

[java] view plaincopy

//查询其中几个字段 ? ??

? ? ? ? String hql = " select name,passwd from Users"; ? ??

? ? ? ? Query query = session.createQuery(hql); ? ??

? ? ? ? //默认查询出来的list里存放的是一个Object数组 ? ??

? ? ? ? List<Object[]> list = query.list(); ? ??

? ? ? ? for(Object[] object : list){ ? ??

? ? ? ? ? ? String name = (String)object[0]; ? ??

? ? ? ? ? ? String passwd = (String)object[1]; ? ??

? ? ? ? ? ? ? ? ?

? ? ? ? ? ? System.out.println(name + " : " + passwd); ? ??

? ? ? ? } ? ??

输出结果为: ? ??

name1 : password1 ? ??

name2 : password2 ? ??

name3 : password3 ? ?

?

?

4.修改默认查询结果(query.list())不以Object[]数组形式返回,以List形式返回

?

Java代码?

?

?

?

?

//查询其中几个字段,添加new list(),注意list里的l是小写的。也不需要导入包,这样通过query.list()出来的list里存放的不再是默认的Object数组了,而是List集合了 ??

? ? ? ? String hql = " select new list(name,passwd) from Users"; ??

? ? ? ? Query query = session.createQuery(hql); ??

? ? ? ? //默认查询出来的list里存放的是一个Object数组,但是在这里list里存放的不再是默认的Object数组了,而是List集合了 ??

? ? ? ? List<List> list = query.list(); ??

? ? ? ? for(List user : list){ ??

? ? ? ? ? ? String name = (String)user.get(0); ??

? ? ? ? ? ? String passwd = (String)user.get(1); ??

? ? ? ? ? ? ? ?

? ? ? ? ? ? System.out.println(name + " : " + passwd); ??

? ? ? ? } ??

? ? ? ? /** ?

? ? ? ? 输出结果为: ?

? ? ? ? ?name1 : password1 ?

? ? ? ? name2 : password2 ?

? ? ? ? name3 : password3 ?

? ? ? ? ?*/?

?

5.修改默认查询结果(query.list())不以Object[]数组形式返回,以Map形式返回

?

Java代码?

//查询其中几个字段,添加new map(),注意map里的m是小写的。也不需要导入包,这样通过query.list()出来的list里存放的不再是默认的Object数组了,而是map集合了 ? ? ?

? ? ? ? String hql = " select new map(name,passwd) from Users"; ? ? ?

? ? ? ? Query query = session.createQuery(hql); ? ? ?

? ? ? ? //默认查询出来的list里存放的是一个Object数组,但是在这里list里存放的不再是默认的Object数组了,而是Map集合了 ? ? ?

? ? ? ? List<Map> list = query.list(); ? ? ?

? ? ? ? for(Map user : list){ ? ? ?

? ? ? ? ? ? //一条记录里所有的字段值都是map里的一个元素,key是字符串0,1,2,3....,value是字段值 ? ? ?

? ? ? ? ? ? //如果将hql改为:String hql?

热点排行