db 写方法分离，支持事务