Hibernate原生SQL使用

Hibernate除了支持HQL查询外,还支持原生SQL。 对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口。该接口是Query接口的子接口。 执行SQL查询步骤如下:

1、获取Hibernate Session对象

2、编写SQL语句

3、通过Session的createSQLQuery方法创建查询对象

4、调用SQLQuery对象的addScalar()或addEntity()方法将选出的结果与标量值或实体进行关联,分别用于进行标量查询或实体查询

5、如果SQL语句包含参数,调用Query的setXxxx方法为参数赋值

6、调用Query的list方法返回查询的结果集。

Hibernate使用HQL查询:

public User findUserById(String id) {
       List<User> list=(List<User>)this.getHibernateTemplate().find("from User where id=?",id);      
          if(list.size()>0){
              return (User)list.get(0);
         }else{
             return null;
         }
  }  
//Hibernate使用SQL(mysql语句,不是sql server)查询
public void entityQuery(){ 
    Session session = HibernateUtil.getSession(); 
    Transaction tx = session.beginTransaction(); 
    String sql = "select * from person_inf"; 
    List list = session.createSQLQuery(sql). 
                addEntity(User.class).    //指定将查询的记录行转换成User实体 
                list();      
    for (Iterator iterator = list.iterator();iterator.hasNext();) { 
            User user= (User) iterator.next();      //集合的每个元素都是一个User对象 
        System.out.println("name="+user.getName()); 
        System.out.println("age="+user.getAge()); 
 
    } 
    tx.commit(); 
    session.close(); 
} 
posted @ 2020-07-15 22:48  panda's  阅读(1088)  评论(0编辑  收藏  举报