分类信息
各地考试

当前位置:首页 » Java认证 » 专业语言 » 正文

Java开源技术专业语言:HibernateHQL查询2


时间:2014-04-29 来源:Java认证考试网 浏览次数:361  【华夏培训网:中国教育培训第一门户

7.修改默认查询结果(query.list())不以Object[]数组形式返回,以自定义类型返回  自定义类:  Java代码  package co

         7.修改默认查询结果(query.list())不以Object[]数组形式返回,以自定义类型返回

  自定义类:

  Java代码

  package com.domain;

  public class MyUser {

  private String username;

  private String password;

  //因为:String hql = " select new   com.domain.MyUser(name,passwd) from Users";所以必须要有接受2个参数的构造函数

  public MyUser(String username,String password){

  this.username = username;

  this.password = password;

  }

  public String getUsername() {

  return username;

  }

  public void setUsername(String username) {

  this.username = username;

  }

  public String getPassword() {

  return password;

  }

  public void setPassword(String password) {

  this.password = password;

  }

  }

  Java代码

  //通过query.list()出来的list里存放的不再是默认的Object数组了,而是自定义的类MyUser,必须加包名,String hql = "from Users";中的Users类也是必须加包名的,但是因为再Users.hbm.xml里<hibernate-mapping auto-import="true"> auto-import默认值为true(所以auto-import属性也可以不写),自动导入了

  String hql = " select new   com.domain.MyUser(name,passwd) from Users";

  Query query = session.createQuery(hql);

  //默认查询出来的list里存放的是一个Object数组,但是在这里list里存放的不再是默认的Object数组了,而是MyUser对象了

  List<MyUser> myUsers = query.list();

  for(MyUser myUser : myUsers){

  String name = myUser.getUsername();

  String passwd = myUser.getPassword();

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

  }

  /**

  输出结果为:

  name1 : password1

  name2 : password2

  name3 : password3

  */

  8:条件查询

  Java代码

  //条件查询,参数索引值从0开始,索引位置。通过setString,setParameter设置参数

  String hql = "from Users where name=? and passwd=?";

  Query query = session.createQuery(hql);

  //第1种方式

  //       query.setString(0, "name1");

  //       query.setString(1, "password1");

  //第2种方式

  query.setParameter(0, "name1",Hibernate.STRING);

  query.setParameter(1, "password1",Hibernate.STRING);

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

  for(Users users : list){

  System.out.println(users.getId());

  }

  Java代码

  //条件查询,自定义索引名(参数名):username,:password.通过setString,setParameter设置参数

  String hql = "from Users where name=:username and passwd=:password";

  Query query = session.createQuery(hql);

  //第1种方式

  //       query.setString("username", "name1");

  //       query.setString("password", "password1");

  //第2种方式,第3个参数确定类型

  query.setParameter("username", "name1",Hibernate.STRING);

  query.setParameter("password", "password1",Hibernate.STRING);

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

  for(Users users : list){

  System.out.println(users.getId());

  }

  Java代码

  //条件查询,通过setProperties设置参数

  String hql = "from Users where name=:username and passwd=:password";

  Query query = session.createQuery(hql);

  //MyUser类的2个属性必须和:username和:password对应

  MyUser myUser = new MyUser("name1","password1");

  query.setProperties(myUser);

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

  for(Users users : list){

  System.out.println(users.getId());

  }





         Java认证

推荐图文

热门点击排行

©2015 hxpx.com All Rights Reserved 滇ICP备13002816号-1
华夏培训网唯一网址www.hxpx.com