重构了一下数据库接口