HibernateTemplate 查询

Posted Fight With Me!!!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HibernateTemplate 查询相关的知识,希望对你有一定的参考价值。

Spring中常用的hql查询方法getHibernateTemplate()上 
  
  一、find(String queryString); 
  示例:this.getHibernateTemplate().find("from bean.User");
  返回所有User对象
  
  二、find(String queryString , Object value);
  示例:this.getHibernateTemplate().find("from bean.User u where u.name=?", "test");
  或模糊查询:this.getHibernateTemplate().find("from bean.User u where u.name like ?", "%test%");
  返回name属性值为test的对象(模糊查询,返回name属性值包含test的对象)
  
  三、find(String queryString, Object[] values);
  示例:String hql= "from bean.User u where u.name=? and u.password=?"
  this.getHibernateTemplate().find(hql, new String[]{"test", "123"});
  返回用户名为test并且密码为123的所有User对象
  
  ---------------------------------
  
  四、findByExample(Object exampleEntity)
  示例: User u=new User(); 
  u.setPassword("123");//必须符合的条件但是这两个条件时并列的(象当于sql中的and) 
  u.setName("bb"); 
  list=this.getHibernateTemplate().findByExample(u,start,max); 
  返回:用户名为bb密码为123的对象
  
  五、findByExample(Object exampleEntity, int firstResult, int maxResults)
  示例: User u=new User(); 
  u.setPassword("123");//必须 符合的条件但是这两个条件时并列的(象当于sql中的and) 
  u.setName("bb"); 
  list=this.getHibernateTemplate().findByExample(u,start,max); 
  返回:满足用户名为bb密码为123,自start起共max个User对象。(对象从0开始计数) 
  
  六、findByNamedParam(String queryString , String paramName , Object value)
  使用以下语句查询: 
  String queryString = "select count(*) from bean.User u where u.name=:myName"; 
  String paramName= "myName";
  String value= "xiyue";
  this.getHibernateTemplate().findByNamedParam(queryString, paramName, value); 
  System.out.println(list.get(0)); 
  返回name为xiyue的User对象的条数
  
  七、findByNamedParam(String queryString , String[] paramName , Object[] value)
  示例: String queryString = "select count(*) from bean.User u where u.name=:myName and u.password=:myPassword"; 
  String[] paramName= new String[]{"myName", "myPassword"};
  String[] value= new String[]{"xiyue", "123"};
  this.getHibernateTemplate().findByNamedParam(queryString, paramName, value);
  返回用户名为xiyue密码为123的User对象
  
  八、findByNamedQuery(String queryName)
  
  示例: 1、首先需要在User.hbm.xml中定义命名查询
  
  
  ......
  
  queryAllUser">
  
  
  from bean.User
  
  ]]>


    2、使用查询:  
  this.getHibernateTemplate().findByNamedQuery("queryAllUser");
  
  九、findByNamedQuery(String queryName, Object value) 
  
  示例: 1、首先需要在User.hbm.xml中定义命名查询 

  ...... 
  
  queryByName">   
  
  from bean.User u where u.name = ? ]]> 
  
  
  2、使用查询:   
  this.getHibernateTemplate().findByNamedQuery("queryByName", "test"); 

以上是关于HibernateTemplate 查询的主要内容,如果未能解决你的问题,请参考以下文章

HibernateTemplate的使用

ssh整合问题总结--使用HibernateTemplate实现数据分页展示

利用hibernateTemplate进行最简单的分页

转getHibernateTemplate()的用法

10.Spring整合Hibernate_3_HibernateTemplate

hibernateTemplate中的回调函数