Hibernate原生SQL使用

线上365bet体育 2026-11-01 04:24:30 admin

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();

}