basehibernatedao.java
来自「SSH 的分页...是新手的一个不错例子.」· Java 代码 · 共 104 行
JAVA
104 行
package com.placard.core.common.hibernate;
import java.io.Serializable;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Criteria;
import org.hibernate.LockMode;
import org.hibernate.Query;
import org.hibernate.Session;
public class BaseHibernateDAO {
protected Log logger = LogFactory.getLog(getClass());
/**
* 取得当期进程的session对象
* @return
*/
public Session getSession() {
return HibernateUtil.getSession();
}
/**
* 保存一个新的实体类的实例,并返回标识号
* @param obj
* @return
*/
public Serializable save(final Object obj) {
return this.getSession().save(obj);
}
/**
* 将一个修改后的实体类的实例,更新到数据库
* @param entity
*/
public void update(Object entity) {
update(entity, null);
}
/**
* 根据传入的实体类的实例,从数据库中删除对应的记录
* @param entity
* @param lockMode
*/
public void update(final Object entity, final LockMode lockMode) {
Session session = getSession();
session.update(entity);
if (lockMode != null) {
session.lock(entity, lockMode);
}
}
/**
* 根据传入的实体类类型从数据库中删除对应的记录
* @param obj
*/
public void remove(Object obj){
Session session = getSession();
session.delete(obj);
}
/**
* 根据传入的实体类类型,及标识号,从数据库中取得对应的实例
* @param clazz
* @param id
* @return
*/
public Object get(Class clazz, Serializable id){
return this.getSession().get(clazz, id);
}
/**
* 根据传入的实体类类型,取得对应的所有实例
* @param clazz
* @return
*/
public List getAll(Class clazz)
{
Session session = this.getSession();
Criteria criteria = session.createCriteria(clazz);
return criteria.list();
}
/**
* 根据传入的Hibernate HQL查询语句及参数值,进行查询
* @param hql
* @param values
* @return
*/
public List find(final String hql, final Object[] values)
{
Session session = this.getSession();
Query query = session.createQuery(hql);
if (values != null) {
for (int i = 0; i < values.length; i++) {
query.setParameter(i, values[i]);
}
}
return query.list();
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?