一 简介
可以从映射文件中得到hql,执行查询语句,这样可以更加灵活,在某些情况下,可以考虑使用:比如在: Student.hbm.xml 中
<query name="myquerytest">
<![CDATA[select sname,ssex from Student where sage>22]]>
</query>如何使用:
List list=session.getNamedQuery("myquerytest").list();
System.out.println(list.size());
Iterator it=list.iterator();
while(it.hasNext()){
Object obj[]=(Object[])it.next();
System.out.println("n="+obj[0]);
}二 实例
package com.cakin.view;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.cakin.util.HibernateUtil;
import com.sina.domain.Studcourse;
import com.sina.domain.Student;
public class TestMain {
public static void main(String[] args) {
//这我们举例说明hql使用
Session session=null;
Transaction tx=null;
try {
session=HibernateUtil.getCurrentSession();
tx=session.beginTransaction();
List list=session.getNamedQuery("myquerytest").list();
System.out.println(list.size());
Iterator it=list.iterator();
while(it.hasNext()){
Object obj[]=(Object[])it.next();
System.out.println("n="+obj[0]);
}
tx.commit();
} catch (Exception e) {
e.printStackTrace();
if(tx!=null){
tx.rollback();
}
throw new RuntimeException(e.getMessage());
// TODO: handle exception
}finally{
if(session!=null&&session.isOpen()){
session.close();
}
}
}
}三 测试结果
4
n=林青霞
n=刘德华
n=林可欣
n=周华健
本文介绍了一种通过映射文件获取HQL并执行查询的方法,这种方法使得查询操作更为灵活。文章提供了一个具体的例子,展示了如何定义和使用NamedQuery,并给出了运行结果。
1746

被折叠的 条评论
为什么被折叠?



