SSH BaseDao 코드
/*********************************************** * DAO, * * @author chen.lin * @version 1.0 ************************************************/
@SuppressWarnings("all")
//@Repository(value="baseDAO")
public class BaseDAO<T> extends HibernateDaoSupport implements IBaseDAO<T> {
private Class<T> clazz;
private Class<T> getClazz(){
if (clazz == null) {// Class
clazz = ((Class<T>) (((ParameterizedType)(this.getClass().getGenericSuperclass())).getActualTypeArguments()[0]));
}
return clazz;
}
@Resource(name="sessionFactory")
public void setSuperSessionFactory(SessionFactory sessionFactory){
super.setSessionFactory(sessionFactory);
}
@Override
public void add(T t) {
this.getHibernateTemplate().save(t);
}
@Override
public void del(Serializable id) {
T t = load(id);
this.getHibernateTemplate().delete(t);
}
@Override
public void update(T t) {
this.getHibernateTemplate().update(t);
}
@Override
public T load(Serializable id) {
return this.getHibernateTemplate().load(getClazz(), id);
}
@Override
public T get(Serializable id) {
return this.getHibernateTemplate().get(getClazz(), id);
}
@Override
public List<T> list(String hql, Object... objs) {
Query query = getQuery(hql, objs);
return query.list();
}
@Override
public List<T> list(String hql) {
return list(hql,null);
}
/** * hibernate query * @param hql * @param objs * @return */
private Query getQuery(String hql, Object... objs){
Query query = this.getSession().createQuery(hql);
if (objs != null && objs.length > 0) {
for (int i = 0; i < objs.length; i++) {
query.setParameter(i, objs[i]);
}
}
return query;
}
/** * hql * @param hql * @return */
private String getCountHQL(String hql){
String s = hql.substring(0,hql.indexOf("from"));
if(s==null||"".equals(s.trim())) {
hql = "select count(*) "+hql;
} else {
hql = hql.replace(s, "select count(*) ");
}
hql = hql.replace("fetch", "");
if (hql.contains("order")) {
hql = hql.substring(0, hql.indexOf("order"));
}
System.out.println("hql----------->" + hql);
return hql;
}
@Override
public Pager<T> find(String hql, Object... objs) {
Integer pageSize = SystemContext.getPageSize();
Integer pageOffset = SystemContext.getPageOffset();
if(pageSize<=0) pageSize = 10;
if(pageOffset<0) pageOffset = 0;
Query q = getQuery(hql, objs);
q.setFirstResult(pageOffset).setMaxResults(pageSize);
String cHql = getCountHQL(hql);
Query cq = getQuery(cHql, objs);
Pager<T> pager = new Pager<T>();
pager.setPageOffset(pageOffset);
pager.setPageSize(pageSize);
List<T> datas = q.list();
pager.setDatas(datas);
long totalRecord = (Long)cq.uniqueResult();
System.out.println("totalRecord--->" + totalRecord);
pager.setTotalRecord(Integer.parseInt(totalRecord + ""));
pager.setTotalPage(Integer.parseInt(((totalRecord + pageSize - 1) / pageSize) + ""));
return pager;
}
@Override
public Pager<T> find(String hql) {
return this.find(hql,null);
}
@Override
public Pager<Object> findObj(String hql, Object... objs) {
Integer pageSize = SystemContext.getPageSize();
Integer pageOffset = SystemContext.getPageOffset();
if(pageSize<=0) pageSize = 10;
if(pageOffset<0) pageOffset = 0;
Query q = getQuery(hql, objs);
q.setFirstResult(pageOffset).setMaxResults(pageSize);
String cHql = getCountHQL(hql);
Query cq = getQuery(cHql, objs);
Pager<Object> pager = new Pager<Object>();
pager.setPageOffset(pageOffset);
pager.setPageSize(pageSize);
List<Object> datas = q.list();
pager.setDatas(datas);
long totalRecord = (Long)cq.uniqueResult();
System.out.println("totalRecord--->" + totalRecord);
pager.setTotalRecord(Integer.parseInt(totalRecord + ""));
pager.setTotalPage(Integer.parseInt(((totalRecord + pageSize - 1) / pageSize) + ""));
return pager;
}
@Override
public Pager<Object> findObj(String hql) {
return this.findObj(hql,null);
}
@Override
public Object queryByHql(String hql, Object... objs) {
Query query = getQuery(hql, objs);
List list = query.list();
if (list != null && list.size() > 0) {
return list.get(0);
}
return null;
//return this.getHibernateTemplate().find(hql, objs).get(0);
}
@Override
public Object queryByHql(String hql) {
return queryByHql(hql,null);
}
@Override
public void executeByHql(String hql, Object... objs) {
getQuery(hql, objs).executeUpdate();
}
@Override
public void executeByHql(String hql) {
executeByHql(hql,null);
}
@Override
public List<Object> findALL(String hql, Object... objs) {
return this.getHibernateTemplate().find(hql, objs);
}
@Override
public List<Object> findALL(String hql) {
return findALL(hql,null);
}
@Override
public void addObj(Object obj) {
this.getHibernateTemplate().save(obj);
}
@Override
public void updateObj(Object obj) {
this.getHibernateTemplate().update(obj);
}
@Override
public void del(T t) {
this.getHibernateTemplate().delete(t);
}
@Override
public List<Object> listByObj(String hql, Object... objs) {
return this.getHibernateTemplate().find(hql, objs);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
SSH 키 쌍이 손실된 경우 EC2 인스턴스에 대한 SSH 연결 복원얼마 전에 안타깝게도 중요한 EC2 인스턴스에 속한 SSH 키 쌍을 잃어버렸습니다. 그 시점에서 우리는 방금 인스턴스의 스냅샷을 찍고 새 키 쌍으로 새 인스턴스를 생성했습니다. 이 블로그 게시물에서는 SSH 연결을 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.