Hibernate高效查询,只查询部分/指定字段
来源:互联网 发布:金山打字mac 编辑:程序博客网 时间:2024/05/16 03:05
hibernate 部分字段查询
public List findBySql(String sql){
Session session=getSession();
Query query=session.createQuery(sql);
List list=query.list();
return list;
}
//下面就是查询字段了
List list=dao.findBySql("select id,uname from Member");
System.out.println(list.size());
for (int i = 0; i < list.size(); i++) {
Object[] o=(Object[])list.get(i);
System.out.println("id="+o[0]+" | name = "+o[1]);
}
List list2=dao.findBySql("select uname from Member");
for (Iterator iterator = list2.iterator(); iterator.hasNext();) {
String name = (String) iterator.next();
System.out.println(name);
}
List list3=dao.findBySql("select id,uname from Member");
for (Iterator iterator = list3.iterator(); iterator.hasNext();) {
Object[] name = (Object[]) iterator.next();
System.out.println(name[0]);
}
4.修改默认查询结果(query.list())不以Object[]数组形式返回,以List形式返回
引用//查询其中几个字段,添加new list(),注意list里的l是小写的。也不需要导入包,这样通过query.list()出来的list里存放的不再是默认的Object数组了,而是List集合了
String hql = " selectnew 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代码//查询其中几个字段,添加newmap(),注意map里的m是小写的。也不需要导入包,这样通过query.list()出来的list里存放的不再是默认的Object数组了,而是map集合了
String hql = "select newmap(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改为:Stringhql= "selectnewmap(name as username,passwd as password) from Users";,那么key将不是字符串0,1,2...了,而是"username","password"了
String name = (String)user.get("0");//get("0");是get(key),注意:0,1,2...是字符串,而不是整形
String passwd = (String)user.get("1");
System.out.println(name + " : " + passwd);
}
二,修改部分字段:
//HQL-Update
String hql = "update Supplier set name = :newName where name = :name";
Query query = session.createQuery(hql);
query.setString("name","Supplier Name 1");
query.setString("newName","s1");
int rowCount = query.executeUpdate();
String hql_update="update from Member set uname='赖春华' where id=1";
dao.update(hql_update);
//update 方法如下:
public int update(String hql){
Session session=getSession();
Query query = session.createQuery(hql);
session.beginTransaction().begin();
session.beginTransaction();
int i= query.executeUpdate();
session.beginTransaction().commit();
session.flush();
return i;
}
- Hibernate高效查询,只查询部分/指定字段
- Hibernate高效查询,只查询部分/指定字段
- Hibernate高效查询,只查询部分/指定字段
- hibernate查询部分字段
- Hibernate - 查询部分字段
- hibernate查询部分字段
- hibernate 只查询某个字段
- hibernate查询指定字段示例
- Hibernate中用hql查询部分字段
- Hibernate中用hql查询部分字段
- Hibernate中用hql查询部分字段
- hibernate中getHibernateTemplate查询部分字段
- Hibernate中用hql查询部分字段
- Hibernate HQL 查询POJO部分字段
- Hibernate中用hql查询部分字段
- Hibernate使用Criteria查询部分字段
- 使用hibernate中getHibernateTemplate查询部分字段
- Hibernate查询部分字段并封装到指定类中(HQL)
- 算法导论第四章4.1节代换法课后答案
- WinCE 控制面板的创建
- 关于矩阵最通俗的解释-超级经典zz
- Erlang gen_server和ets简单应用
- ofbiz[12.04.02] 菜鸟日记------流程介绍
- Hibernate高效查询,只查询部分/指定字段
- java 保留两位小数4种方法
- Ubuntu12.04下arm交叉编译环境的建立
- WinCE 控制面板和驱动通信
- Java使用memcached
- Mac下批量删除.svn文件
- 纯C语言写的拼图游戏源码
- Button绑定onTouchListenner后加载background失效
- sql 锁以及解锁