-----------》公共dao的结构
-----共用接口和共用实现类------------------
public interface BaseDao<E,ID extends Serializable> {}
public class BaseDaoImpl<E,ID extends Serializable> implements BaseDao<E,ID>{}
-------具体接口和具体实现类------------------
public interface MenuDao extends BaseDao<Menu, Integer> {}
public class MenuDaoImpl extends BaseDaoImpl<Menu, Integer> implements MenuDao {}
----------》具体具体代码(写了部分方法)
BaseDao.java
BaseDaoImpl.java
MenuDao.java
MenuDaoImpl.java
-----共用接口和共用实现类------------------
public interface BaseDao<E,ID extends Serializable> {}
public class BaseDaoImpl<E,ID extends Serializable> implements BaseDao<E,ID>{}
-------具体接口和具体实现类------------------
public interface MenuDao extends BaseDao<Menu, Integer> {}
public class MenuDaoImpl extends BaseDaoImpl<Menu, Integer> implements MenuDao {}
----------》具体具体代码(写了部分方法)
BaseDao.java
package com.xj.dao;
import java.io.Serializable;
import java.util.List;
public interface BaseDao<E,ID extends Serializable> {
/**
* 增加实体
* @param obj
*/
public abstract void addObject(E obj);
/**
* 删除实体
* @param obj
*/
public abstract void deleteObject(E obj);
/**
* 跟新实体
* @param obj
*/
public abstract void updateObject(E obj);
// public abstract Boolean checkObjectExistsWithName(String objName);
/**
*
* 根据id查找实体
*/
public abstract E queryObjectById(Class<E>clazz,ID id);
/**
* 根据条件查找所有实体
* @param queryStr
* @return
*/
public abstract List<E> queryObjects(String queryStr);
}
BaseDaoImpl.java
package com.xj.dao.impl;
import java.io.Serializable;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.stereotype.Component;
import com.xj.dao.BaseDao;
@Component("baseDao")
public class BaseDaoImpl<E,ID extends Serializable> implements BaseDao<E,ID>{
private HibernateTemplate hibernateTemplate;
public HibernateTemplate getHibernateTemplate() {
return hibernateTemplate;
}
@Resource
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}
@Override
public void addObject(E obj) {
hibernateTemplate.save(obj);
}
@Override
public void deleteObject(E obj) {
hibernateTemplate.delete(obj);
}
@Override
public void updateObject(E obj) {
hibernateTemplate.update(obj);
}
@Override
public E queryObjectById(Class<E> clazz,ID id) {
return hibernateTemplate.get(clazz, id);
}
@SuppressWarnings("unchecked")
@Override
public List<E> queryObjects(String queryStr) {
return hibernateTemplate.find(queryStr);
}
}
MenuDao.java
package com.xj.dao;
import com.xj.model.Menu;
public interface MenuDao extends BaseDao<Menu , Integer> {
}
MenuDaoImpl.java
package com.xj.dao.impl;
import org.springframework.stereotype.Service;
import com.xj.dao.MenuDao;
import com.xj.model.Menu;
@Service("menuDao")
public class MenuDaoImpl extends BaseDaoImpl<Menu, Integer> implements MenuDao {
}