我正在使用Spring MVC v3.0和Jdbc模板开发一个演示应用程序。在我的不同-2模块的应用程序中,我们需要一些相同的方法,如保存,更新,删除等。。而不是一次又一次地写不同模块的方法相同。我们有没有办法在公共类(抽象类)中实现这种功能。
希望一些好友会给我一个学习和实现这个功能的好方法。
答案 0 :(得分:0)
你可以通过使用带有Object类型参数的save方法的超类来实现,然后你必须检查instanceOf并实现。但是我建议你有不同类型的不同方法。
答案 1 :(得分:0)
创建一个抽象类
public abstract class AbstractDaoImpl<E,F> extends HibernateDaoSupport{
public abstract Class<E> getEntityType();
public void update(Object updateObject) throws DAOException {
try {
getHibernateTemplate().saveOrUpdate(updateObject);
getHibernateTemplate().flush();
}catch(Exception ex){
logger.error("Error updating attachment: " + ex.getMessage());
throw new DAOException(ex.getMessage(),Code.DAO_EXCEPTION);
}finally {}
//To find by ID
@SuppressWarnings("unchecked")
@Override
public E retrieveSingleMatch(F id) {
return (E) getHibernateTemplate().get(getEntityType(), (Serializable) id);
}
}
和Dao实施
public class StudentDaoImpl<Student,String> extends AbstractDaoImpli implements MyDao {
@SuppressWarnings("unchecked")
public Class getEntityType() {
return Student.class;
}
}
您的服务代码将是
studentDao.update(anyDomainObject);
Student student = studentDao.retrieveSingleMatch(studentId);
取决于您的对象,