`
gingguoqiu
  • 浏览: 25111 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

hibernate中getHibernateTemplate查询部分字段

阅读更多
package tdh.court09.dao;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.transform.Transformers;
import org.hibernate.type.Type;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

public class CommonDAO extends HibernateDaoSupport {

  private static final Log MYLOG = LogFactory.getLog(CommonDAO.class);

  /**
   * save
   * 
   * @param transientInstance
   */
  public void save(Object transientInstance) {
    MYLOG.debug("deleting " + Object.class.getName());
    try {
      getHibernateTemplate().save(transientInstance);
      MYLOG.debug("save successful");
    } catch (RuntimeException re) {
      MYLOG.error("save failed", re);
      throw re;
    }
  }

  /**
   * update
   * 
   * @param transientInstance
   */
  public void update(Object transientInstance) {
    MYLOG.debug("deleting " + Object.class.getName());
    try {
      getHibernateTemplate().update(transientInstance);
      MYLOG.debug("save successful");
    } catch (RuntimeException re) {
      MYLOG.error("save failed", re);
      throw re;
    }
  }

  /**
   * delete
   * 
   * @param persistentInstance
   */
  public void delete(Object persistentInstance) {
    MYLOG.debug("deleting " + Object.class.getName());
    try {
      getHibernateTemplate().delete(persistentInstance);
      MYLOG.debug("delete successful");
    } catch (RuntimeException re) {
      MYLOG.error("delete failed", re);
      throw re;
    }
  }

  /**
   * get Object(such as Integer, Long)
   * 
   * @param hql
   * @param objArr
   * @param typeArr
   * @return
   */
  public Object getObjectByHql(final String hql, final Object[] objArr, final Type[] typeArr) {
    MYLOG.debug("getObjectByHql: " + hql);
    try {
      Object obj = getHibernateTemplate().execute(new HibernateCallback() {
        public Object doInHibernate(Session session) throws HibernateException, SQLException {
          Query query = session.createQuery(hql);
          if (objArr != null) {
            query.setParameters(objArr, typeArr);
          }
          return query.uniqueResult();
        }
      });
      return obj;
    } catch (RuntimeException re) {
      MYLOG.error("get failed", re);
      throw re;
    }
  }

  /**
   * get Object(such as Integer, Long)
   * 
   * @param hql 
   * @param objArr
   * @param typeArr
   * @return
   */
  public Object getObjectByHql(final String hql) {
    return getObjectByHql(hql, null, null);
  }

  /**
   * getList
   * 
   * @param hql
   * @param objArr
   * @param typeArr
   * @return List<Object[]>
   */
  public List<?> getListByHql(final String hql, final Object[] objArr, final Type[] typeArr) {
    MYLOG.debug("getListByHql: " + hql);
    try {
      List<?> list = getHibernateTemplate().executeFind(new HibernateCallback() {
        public Object doInHibernate(Session session) throws HibernateException, SQLException {
          Query query = session.createQuery(hql);
          if (objArr != null) {
            query.setParameters(objArr, typeArr);
          }
          List<?> list = query.list();
          return list;
        }
      });
      return list;
    } catch (RuntimeException re) {
      MYLOG.error("get failed", re);
      throw re;
    }
  }

  /**
   * getList
   * 
   * @param hql
   * @return List<Object[]>
   */
  public List<?> getListByHql(final String hql) {
    return getListByHql(hql, null, null);
  }

  /**
   * 此方法对含有text的字段不支持
   * 
   * @param sql eg: select AHDM,AH from AJ where AHDM='227300000005631'
   * @return List<Map>
   */
  @SuppressWarnings("unchecked")
  public Map<String, Object> getMapBySql(final String sql) {
    MYLOG.debug("getListBySql: " + sql);
    try {
      Object obj = getHibernateTemplate().execute(new HibernateCallback() {
        public Object doInHibernate(Session session) throws HibernateException, SQLException {
          Query query = session.createSQLQuery(sql);
          query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
          return query.uniqueResult();
        }
      });
      return (Map<String, Object>) obj;
    } catch (RuntimeException re) {
      MYLOG.error("get failed", re);
      throw re;
    }
  }

  /**
   * 此方法对含有text的字段不支持
   * 
   * @param sql eg: select AHDM,AH from AJ where AHDM='227300000005631'
   * @return List<Map>
   */
  public List<?> getListBySql(final String sql, final Object[] objArr, final Type[] typeArr) {
    MYLOG.debug("getListBySql: " + sql);
    try {
      List<?> list = getHibernateTemplate().executeFind(new HibernateCallback() {
        public Object doInHibernate(Session session) throws HibernateException, SQLException {
          Query query = session.createSQLQuery(sql);
          if (objArr != null) {
            query.setParameters(objArr, typeArr);
          }
          query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
          List<?> list = query.list();
          return list;
        }
      });
      return list;
    } catch (RuntimeException re) {
      MYLOG.error("get failed", re);
      throw re;
    }
  }

  /**
   * 此方法对含有text的字段不支持
   * 
   * @param sql eg: select AHDM,AH from AJ where AHDM='227300000005631'
   * @return List<Map>
   */
  public List<?> getListBySql(final String sql) {
    return getListBySql(sql, null, null);
  }

  /**
   * 更新
   * 
   * @param sql
   * @return
   */
  public int updateSql(final String sql, final Object[] objArr, final Type[] typeArr) {
    try {
      int i = (Integer) getHibernateTemplate().execute(new HibernateCallback() {
        public Object doInHibernate(Session session) throws HibernateException, SQLException {
          Query query = session.createSQLQuery(sql);
          if (objArr != null) {
            query.setParameters(objArr, typeArr);
          }
          return query.executeUpdate();
        }
      });
      return i;
    } catch (RuntimeException re) {
      MYLOG.error("get failed", re);
      throw re;
    }
  }

  /**
   * 更新
   * 
   * @param sql
   * @return
   */
  public int updateSql(final String sql) {
    return updateSql(sql, null, null);
  }

}

 

分享到:
评论

相关推荐

    getHibernateTemplate()查询

    getHibernateTemplate()查询 hibernate hql

    getHibernateTemplate()使用方法

    整合了hibernate的getHibernateTemplate()使用方法 全面详细 带有相应的例子

    getHibernateTemplate分页-模糊查询

    getHibernateTemplate分页-模糊查询.hibernate查询以及分页查询等方法使用。

    getHibernateTemplate()有模糊查询和 分页

    getHibernateTemplate()有模糊查询和 分页getHibernateTemplate()有模糊查询和 分页

    getHibernateTemplate

    getHibernateTemplate()方法

    gethibernatetemplate的find方法

    gethibernatetemplate的find方法,find(String queryString);find(String queryString , Object value);find(String queryString, Object[] values);findByExample(Object exampleEntity);findByExample(Object ...

    ssh(structs,spring,hibernate)框架中的上传下载

    数据表Blob字段在Hibernate持久化映射文件中的type为org.springframework.orm.hibernate3.support.BlobByteArrayType,即Spring所提供的用户自定义的类型,而非java.sql.Blob。 3在Spring中使用org.springframework...

    jsp中调用dao的getHibernateTemplate()时,报空指针

    jsp中调用dao的getHibernateTemplate()时,报空指针

    Hibernate使用技巧汇总

    Hibernate总是使用对象类型作为字段类型 5. XDoclet专门建立了hibernate doclet,就是在java代码上加上一些 java docTag,后来再让XDoclet分析该java代码,生成映射文件; 6.HQL子句本身大小写无关,...

    第24次课-1 Spring与Hibernate的整合

    Spring提供了很多IoC特性的支持,方便处理大部分典型的Hibernate整合问题。 如:SessionFactory的注入、HibernateTemplate的简化操作、DAO的支持等。 为了更好地与持久层框架整合,Spring还提供了统一的异常处理体系...

    hibernate模板类详解

    find(String queryString , Object value); 示例:this.getHibernateTemplate().find("from bean.User u where u.name=?", "test"); 这样的例子里面还有很多

    hibernate保存不到数据1

    解决getHibernateTemplate().save ()不能将数据保存到数据库的问题JusterDu 2016-03-15 08:38:57 1857

    Hibernate中Criteria的完整用法.docx

    Spring 的框架提供了getHibernateTemplate ().findByCriteria(detachedCriteria) 方法可以很方便地根据DetachedCriteria 来返回查询结 果。 DetachedCriteria 提供了 2 个静态方法 forClass(Class) 或 forEntityName...

    Struts2 Spring hibernate 国际化 表单验证 安全退出

    这次弄了点细节问题 所以分要的高了点 不过应该还是值得的 汗 登录做得太笨了 原来可以这样做 更改hibernate的实现类 添加以下方法 ,loginaction的条件用这个来改 public boolean login(String username, String ...

    Spring中常用的hql查询方法

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

    手机充值卡充值

    package dao.hibernate; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import vo.Card; import dao.ICardDAO; public class CardDAOImp extends HibernateDaoSupport implements ...

    火炬博客系统7

    Hibernate用来作持久层部分和域模型层部分,负责存储、更新、删除、查询数据库记录等,用来作DAO处理,本系统使用Spring整合Hibernate,spring为Hibernate的session提供了有效的容易和安全的控制,Spring控制...

    火炬博客系统6

    Hibernate用来作持久层部分和域模型层部分,负责存储、更新、删除、查询数据库记录等,用来作DAO处理,本系统使用Spring整合Hibernate,spring为Hibernate的session提供了有效的容易和安全的控制,Spring控制...

    火炬博客系统5

    Hibernate用来作持久层部分和域模型层部分,负责存储、更新、删除、查询数据库记录等,用来作DAO处理,本系统使用Spring整合Hibernate,spring为Hibernate的session提供了有效的容易和安全的控制,Spring控制...

    图书查询-Java-Web程序设计教程-[共2页].pdf

    Java Web 程序设计教程 300 页 &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;jsp:include page="foot.jsp"&gt;&lt;/jsp:include&gt; &lt;/body&gt; &lt;/html&gt; 14.5 图书查询 在 head.jsp 页面中,不只有登录、注销和注册功能,在它们的下面,还有图书查询...

Global site tag (gtag.js) - Google Analytics