dao refactor:add abstract class