继续上一篇《http://www.cnblogs.com/insus/p/3826706.html 。我们更深层次学会了逻辑层对象,即各个具体对象与数据库之间的逻辑类。  我们有分为有处理Access的SQL语句和SQL Server的SQL语句的,还有处理存储过程和参数的。

今天Insus.NET再从处理SQL语句对象,再创建一个对象叫SqlStatement吧。让用户引用这个类时,无需再写SQL语句,只管传入字段,或值,或条件。


实现之前,我们先想一想,SQL语句有SELECT,UPDATE,DELETE,INSERT四种,其中有些SQL语句还需要带条件。细节如下,
SELECT语句:
SELECT * FROM table
SELECT * FROM table WHERE xxx= yyy
SELECT col1,col2,...FROM table
SELECT col1,col2,... FROM table WHERE xxx= yyy

UPDATE语句:
UPDATE table SET xxx= yyy WHERE zzz=aaa

DELETE语句:
DELETE FROM table WHERE xxx= yyy

INSERT语句:
INSERT INTO table(col,col2) VALUES(xxx,yyyy)

等等 。
因此,我们需要创建一个字段的类别,如Field:
ASP.NET开发,从二层至三层,至面向对象 (4)


这个类有两个property,是为了让用户在SELECT,INSERT或是更新时,能传入所显示,插入或是更新的字段。

接下来,我们再创建一个WHERE条件类,如Condition,它是让用户在SELECT带有WHERE条件,当然在更新或是删除时,SQL语句是少不了条件。
ASP.NET开发,从二层至三层,至面向对象 (4)


这个类,它有三个property。field是指定字段,operators是操作, 你是使用"=",">"还是“<"等,最后一个property为指值。

OK,现在我们可以创建可封装的类SqlStatement,看看:
ASP.NET开发,从二层至三层,至面向对象 (4)

 

 写到这里,也许会有网友会问题,有些情形上面的无实现。Insus.NET想,这毕竟是SQL语句,它比起存储过程来说,一些不足之处,自然显示出来,因此Insus.NET一直在使用存储过程的原因。上面这个SqlStatement类,还是可以扩展的。这需要发挥个人的想象力了。

为了能让大家能更好的使用。下面Insus.NET重构前几篇写好的类Item,改为应用这个SqlStatement类。
先来看看GetAll()方法,注释掉的语句,是原来的方法:
ASP.NET开发,从二层至三层,至面向对象 (4)


让你自动产生SQL语句。
如果是SQL数据库,最后两句:

 BizBaseSQL objBizBaseSQL = new BizBaseSQL();
 objBizBaseSQL.Sql = objSqlStatement.GenerateSelectStatement();
 return  objBizBaseSQL.ExecuteDataSet().Tables[0];
View Code

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-11-18
  • 2021-09-24
  • 2021-12-04
  • 2021-08-21
  • 2021-08-30
猜你喜欢
  • 2021-08-02
  • 2021-10-25
  • 2021-09-14
  • 2021-08-16
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案