Hibernate.gethibernatetemplate 实现增、删、改、查 方法

  1. find(String hql); //普通查询
    示例:this.gethibernateTemplate().find(“from User”);

  2. find(String hql,Object value);//一个查询条件

    示例:this.gethibernateTemplate().find(“from User u where u.name=?”,“test”);

  3. find(String hql,Object[] values);// 多个查询条件

    示例:this.gethibernateTemplate().find(“from User u where u.name=? and u.pwd=?”,new String[]{“test”,“123”});

  4. findByExample(Object exampleEntity,int firstResult, int maxResults)//分页使用

    示例:

    User user= new User(); u.setActive(“Active”);

    List list=this.getHibernateTemplate().findByExample(user,firstResult,maxResults);

    查询结果:状态为Active的用户(对象从0到20 计数)

  5. findByNamedParam(String hql,String paramName,Object value); //一个查询条件

    示例:

    hql="from User u where u.name=:parName ";

    paramName= “parName”;

    value=“bb”

    List list = this.getHibernateTemplate.findByNamedParam(hql,paramName,value);

    查询结果:姓名为bb的用户

  6. findByNamedParam(String queryString , String[] paramName , Object[] value) //多个查询条件

    示例:

    hql="from User u where u.name=:myname and u.pwd =:mypwd ";

    String[] paramName= new String[]{“myname”,“mypwd”};

    Sring[] value=new Strign[]{“bb”,“123”};

    List list = this.getHibernateTemplate.findByNamedParam(hql,paramName,value);

    查询结果:姓名为bb密码为123的用户

7.分页HQL示例

public List excuteHqlPage(final String hqlStr, final int startRow,final int rowCount) throws DaoException {

List<Object[]> list;

try {

   list = getHibernateTemplate().executeFind(new HibernateCallback() {

   public Object doInHibernate(Session session)

   throws HibernateException, SQLException {

   org.hibernate.Query query = (org.hibernate.Query) session.createQuery(hqlStr);

   query.setFirstResult(startRow);// 定义从第几条开始查询

   query.setMaxResults(rowCount);// 定义返回的记录数

   List list = query.list();

   return list;

 }

});

} catch (Exception e) {

throw new DaoException(DaoException.ERRORCODE_EXCUTEHQL);

}

return list;

}

  1. 根据HQL/SQL 查询

    public List queryByHql(final String hql, final Object[] prams,final String sql) {

    return (List) getHibernateTemplate().execute(new HibernateCallback(){

    public Object doInHibernate(Session session)
    
      throws HibernateException, SQLException {
    
         if(hql!=null && hql.length()>0){
    
        Query query=session.createQuery(hql);
    
        if(prams!=null && prams.length>0){
    
        for(int i=0;i<prams.length;i++){
    
        query.setParameter(i,prams[i]);
    
      }
    

    }

    return query.list();

    }else{

    SQLQuery sqlquery=session.createSQLQuery(sql);

    return sqlquery.list();

}

}

});

}

  1. 保存/更新

    public String saveOrUpdateObject(ISuperVO vo) throws DaoException {

    try {

      String id = null;
    
      if (StringUtil.isEmpty(vo.getPid())) {
    
         getHibernateTemplate().save(vo);
    
     } else {
    
        getHibernateTemplate().merge(vo);
    
    }
    
     id = vo.getPid();
    
     return id;
    

    } catch (Exception e) {

       e.printStackTrace();
    

}

}

  1. getHibernateTemplate().delete(vo); //删除

  2. 根据条件删除

public Integer deleteObjectsByWherePart(final Class voClass,final String wherePart, final Object[] parmaters)throws DaoException {

try {

   Integer count = (Integer) getHibernateTemplate().execute( new HibernateCallback() {

  public Object doInHibernate(Session session)throws HibernateException, SQLException {

  Integer coun = null;

  String hql = "delete from " + voClass.getName()+ " where 1=1 ";

  if (wherePart != null && wherePart.trim().length() > 0) {

      hql = hql + " and " + wherePart;

  }

  Query query = session.createQuery(hql);

  Object obj = null;

  if (parmaters != null && parmaters.length > 0) {

      for (int i = 0; i < parmaters.length; i++) {

         obj = parmaters[i];

        query.setParameter(i, obj);

     }

   }

  coun = query.executeUpdate();

  return coun;

 }

});

return count;

} catch (Exception e) {

e.printStackTrace();

}

}

猜你喜欢

转载自blog.csdn.net/a136447572/article/details/102466476