您的位置:首页 > 产品设计 > UI/UE

hibernate.Query查询

2015-09-08 19:02 543 查看
通过Hibernate提供的类和方法对数据库进行更深层次的查询。

1.实体类

public class User {
//id字段,主键
private int id;
//用户名
private String username;
//密码
private String userpass;
//无参数构造方法
public User(){}
//有参数构造方法
public User(int id,String username,String userpass){
this.id=id;
this.username=username;
this.userpass=userpass;
}
public int getId() {
return id;
}
//相应的getter setter
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUserpass() {
return userpass;
}
public void setUserpass(String userpass) {
this.userpass = userpass;
}
}


2.对数据库中数据进行查询

(1)获取对象的所有字段

public static void main(String[] args) {
// TODO Auto-generated method stub
Session session=null;
Transaction tx=null;
session=HibernateSessionFactory.getSession();
tx=session.beginTransaction();
//查询整个对象的所有字段
String hql="from User";
Query query=session.createQuery(hql);
List<User> list=query.list();
Iterator its=list.iterator();
while(its.hasNext()){
User user=(User)its.next();
System.out.println(user.getId()+" "+user.getUsername()+" "+user.getUserpass());
}
}
(2)获取单一字段

public static void main(String[] args) {
// TODO Auto-generated method stub
Session session=null;
Transaction tx=null;
session=HibernateSessionFactory.getSession();
tx=session.beginTransaction();
//查询整个对象的所有字段
String hql="select id from User";
Query query=session.createQuery(hql);
List<java.lang.Integer> list=query.list();
Iterator its=list.iterator();
while(its.hasNext()){
int a=(java.lang.Integer)its.next();
System.out.println(a);
}
}
(3)获取多个字段

public static void main(String[] args) {
// TODO Auto-generated method stub
Session session=null;
Transaction tx=null;
session=HibernateSessionFactory.getSession();
tx=session.beginTransaction();
//查询整个对象的所有字段
String hql="select username,userpass from User";
Query query=session.createQuery(hql);
List<Object[]> list=query.list();
//iterator遍历
Iterator its=list.iterator();
while(its.hasNext()){
Object[] a=(Object[])its.next();
System.out.println(a[0].toString()+" "+a[1].toString());
}
}
(4)条件查询

String hql="from User where username=? and userpass=?";
Query query=session.createQuery(hql);
//第一种方式
//query.setString(0, "乔丹");
//query.setString(1,"123");
//第二种方式
query.setParameter(0,"乔丹",Hibernate.STRING);
query.setParameter(1, "123",Hibernate.STRING);
List<User> list=query.list();
for(User user:list){
System.out.println(user.getId());
}


自定义索引的查询

public static void main(String[] args) {
// TODO Auto-generated method stub
Session session=null;
Transaction tx=null;
session=HibernateSessionFactory.getSession();
tx=session.beginTransaction();
//查询整个对象的所有字段
String hql1="from User where username=:username and userpass=:userpass";
Query query1=session.createQuery(hql1);
//第一种方式
/*query.setString("username","乔丹");
* query.setString("userpass","123")
*
* */

//第二种凡是,第三个参数确定类型
query1.setParameter("username","乔丹",Hibernate.STRING);
query1.setParameter("userpass","123",Hibernate.STRING);
List<User> list1=query1.list();
for(User user:list1){
System.out.println(user.getId());
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: