您的位置:首页 > 编程语言 > Java开发

Spring中常用的hql查询方法(getHibernateTemplate())

2009-01-09 16:20 525 查看
Spring中常用的hql查询方法(getHibernateTemplate())

find(String hql);

find(String hql,Object arg);

find(hql,arg0,arg1);

find(String hql,Object[] arg);

----------------------------------------------

findByExample(Object obj,int start,int max)

public List searchAll(){    

    List list=null;    

    try{    

     User u=new User();    

     u.setPassword("123");//必须 符合的条件但是这两个条件时并列的(象当于sql中的and)    

     u.setName("bb");    

     list=this.getHibernateTemplate().findByExample(u,start,max);    

 }catch(RuntimeException re){    

  throw re;    

 }    

 return list;    

   }    

---------------------------------------------------

findByNamedParam的使用

数据库中有一表Member(id,email),已经有一条记录('123','sdf@sfd.com'); 

使用以下语句查询: 

String hql = "select count(*) from Member where email=:email and id!=:id"; 

List list = this.support.getHibernateTemplate().findByNamedParam(hql,new String[] { "email", "id" },new Object[] { "sdf@sfd.com", "123"}); 

System.out.println(list.get(0)); 

-------------------------------------------------------

findByNamedQueryAndNamedParam的使用 

public User loadByName(String account)  throws DAOException{

     List result = getHibernateTemplate().findByNamedQueryAndNamedParam("loadUserByName", "userAccount", account);

     if (result != null ) {

        return (User)result;

    } else {

        return null;

    }

}

这是在user.hbm.xml中的代码:

<query name="loadUserByName">

                <![CDATA[select user from user as user where user.name=:userAccount]]>

</query>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息