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 list=(List)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(); } 



你可能感兴趣的:(Hibernate原生SQL使用)