重构数据访问层