abstract the dao(AbstractGeneralDaoImpl and AbstractSpringDAO)