发挥面向对象和数据库的特点
方法:声明一个Entity类和一个业务逻辑类
数据处理:手写SQL
数据容器:插入、更新 、传递单条记录使用Entity对象,一组记录使用数据库控件
// 客户Entity class CustomerEntity { public int Id; public string Name; } // 客户类 class Customer { private int Id; //构造 public Customer(int Id) { this.Id = Id; } // 输入客户信息 public bool Insert(CustomerEntity CustEntity) { } // 更新客户信息 public bool Update(CustomerEntity CustEntity) { } //删除客户信息 public bool Delete() { } //获得客户信息 public CustomerEntity GetInfo() { } //获得客户列表 public DataSet GetList() { } } |
优点
- 能发挥面向对象和数据库各自的特点
- 代码效率高
缺点
- 需要比较全面的面向对象理论
- 使用了Entity类,需要自动生成工具
使用O/R Mapping 工具
方法:使用O/R Mapping工具
数据处理:O/R Mapping 工具自动处理
数据容器:对象
// 客户类 class Customer { public int Id; public string Name; // 输入客户信息 public bool Insert(CustomerEntity CustEntity) { } // 更新客户信息 public bool Update(CustomerEntity CustEntity) { } //删除客户信息 public bool Delete() { } //获得客户信息 public CustomerEntity GetInfo() { } //获得客户列表 public IList GetList() { } } |
优点
- 能发挥面向对象特点
- 可以自动把对象模型转换到数据模型
- 能自动处理,简单的CURD
缺点
- 需要很高的能力和耐心
- 流行的O/R Mapping 工具都是开源出来的,没有保障
- 还不是很完善,存在不可预测的危险
- 对于处理复杂的对象关系,配置复杂
- 需要额外学习O/R Mapping 方面的知识
那到底该用什么样的方式?
采用什么样的方式,实际上说,主要还是在人,而不是在技术。确定使用哪种方式之前,可以考虑以下几个问题,
- 使用它的目的是什么?
- 对它了如指掌吗?如果出现问题,能马上解决吗?
- 它简单吗?初学的人需要多长时间,才能掌握?
- 跟所有人达成共识了吗?有没有抵触的人?
不要让项目成为你练手的试验品,不要让底下的人每天处理80%的工具问题,只处理20%的业务逻辑。业务逻辑才是客户需要的东西。
上一页 [1] [2]

【责编:John】