使用JDBC模板概括应用程序的方法

时间:2011-12-16 09:46:59

标签: spring spring-mvc jdbctemplate

我正在使用Spring MVC v3.0和Jdbc模板开发一个演示应用程序。在我的不同-2模块的应用程序中,我们需要一些相同的方法,如保存,更新,删除等。。而不是一次又一次地写不同模块的方法相同。我们有没有办法在公共类(抽象类)中实现这种功能。

希望一些好友会给我一个学习和实现这个功能的好方法。

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);

取决于您的对象,