您的位置:首页 > 其它

hibernate中getHibernateTemplate查询部分字段

2012-07-14 17:36 363 查看
package com.heishan.schoolcloud.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);

}

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