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中定义命名查询

  <query name="queryAllUser">
  <![from User]]>
  </query>  

    2、使用查询:
  this.getHibernateTemplate().findByNamedQuery("queryAllUser");

九、findByNamedQuery(String queryName, Object value)

示例: 1、首先需要在User.hbm.xml中定义命名查询 

  <query name="queryByName">
 <![from User where u.name = ?]]>
 </query>
  2、使用查询:
  this.getHibernateTemplate().findByNamedQuery("queryByName", "test"); 
时间: 2024-10-28 15:38:47

HibernateTemplate 查询的相关文章

HibernateTemplate 查询原生sql及ljava.lang.object cannot be cast to

/** * 使用sql语句进行查询操作 * @param sql * @return */ public List queryWithSql(final String sql){ List list = hibernateTemplate.executeFind(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Query

HibernateTemplate、HibernateDaoSupport两种方法实现增删改查Good(转)

Spring+Hibernate两种方法实现增删改查 首先,定义一个Customer的bean类,设置好Customer.hbm.xml文件.再定义好一个Dao接口.准备好一个jdbc.properties文件. 第一种方法: 在dao类中定义一个HibernateTemplate类的对象,用该对象调用HibernateTemplate模板封装好的方法,如下: /*** * hibernateTemplate的转配模式 */ public class CustomerDaoImpl implem

在Hibernate中使用HibernateTemplate来进行包含sql语句的查询

/**     * 使用sql语句进行查询操作     * @param sql     * @return     */    public List queryWithSql(final String sql){        List list = hibernateTemplate.executeFind(new HibernateCallback() {            public Object doInHibernate(Session session) throws Hib

HibernateTemplate实现查询distinct构造对象

1,hql代码 select distinct new UserLogins( u.username,u.person,u.accName) from UserLogins u where u.ipAddr = ? and u.userDel = 0 2,UserLogins创建对应的构造函数 3,HibernateTemplate代码 getHibernateTemplate().find(hql, ip);

外键关联非主键id时-hbm.xml配置,及其分页查询DaoImpl

表关联时,外键关联非主键id时-hbm.xml配置: (由于hibernate默认为关联主键查询,故需要配置相关hql语句的属性) <many-to-one name="areas" class="com.hnqy.entity.Areas" fetch="select" property-ref="areaid" foreign-key="areaid"> <column name=&q

分页查询知识点

1.在mysql里面使用分页查询sql语句: 使用limit关键字 select * from user limit 0,3; limit关键字后面有两个参数,第一个参数为开始位置,第二个参数为每页显示记录数 2.分页相关属性 2.1当前页 2.2每页显示记录数 2.3总记录数 2.4总页数 总记录数除以每页显示记录数 比如10条记录,每页显示5条,有2页 比如10条记录,每页显示7条,有2页 总记录数除以每页显示记录数,如果能够整除,结果是相除结果.如果不能整除,结果是相除的结果+1. 2.5

HibernateTemplate常用方法

1:get/load存取单条数据 1)get()方法执行的时候,会立即向数据库发出查询语句,而load()方法返回的是一个代理(此代理中只有一个id属性),只有等真正使用该对象属性的时候,才会发出sql语句. 2)如果数据库中没有对应的记录,get()方法返回的是null.而load()方法出现异常ObjectNotFoundException HibernateTemplate.load(class<t>entityclass, Serializable id); HibernateTemp

HibernateTemplate 的常见用法

HibernateTemplate 提供了非常多的常用方法来完成基本的操作,比如增加.删除.修改及查询等操作,Spring 2.0 更增加对命名 SQL 查询的支持,也增加对分页的支持.大部分情况下,使用Hibernate 的常规用法,就可完成大多数DAO对象的 CRUD操作. 下面是 HibernateTemplate的常用方法.     delete(Object entity): 删除指定持久化实例. deleteAll(Collection entities): 删除集合内全部持久化类实

HibernateTemplate实现CRUD操作

---------------------siwuxie095 HibernateTemplate 实现 CRUD 操作 1.在 SSH 框架中使用 HibernateTemplate 模板类实现 CRUD 操作 2.HibernateTemplate 是 Spring 对 Hibernate 的封装 3.使用 HibernateTemplate 时,必须进行事务管理,否则将报错 建议:使用基于注解方式的声明式事务管理 4.测试 (1)编写一个实体类 User.java: package com