ASP数据持久层抽象
你还在使用ASP吗?我知道ASP虽然被很多高级的企业级应用抛弃,但是像我一样靠ASP起家的开发者,或者开发一些简单WEB应用的开发者,一定在某些时候还在考虑ASP。它简单,容易使用。在访问数据库方面,通过ADO也能够无所不能。然而使用ADO稍微复杂了一点。如果你还在老老实实的、重复了一遍又一遍的编写下面的代码或者看到别人编写这样的代码,那么你一定要阅读这篇文章。这篇文章将会彻底颠覆以往你对ASP的观念,带你进入一个新的世界。
Set rs = Server.CreateObject("ADODB.RecordSet")
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open SOMEDB
rs.Open SomeSQL_OR_Some_Table, conn
While Not rs.EOF
' Do operations...
rs.MoveNext
Wend
...
每个这样的需求都要这样写,你烦不烦?
引入POAsp
什么是POASP? 就是Persistence Object for ASP的缩写。顾名思义,这个小型的library想将面向对象的观念引入到ASP中来,同时尽可能以尽可能简单的方式使用。考虑这样的场景,要插入一条记录: 上面这段代码我想每个做ASP的人都很熟悉。那么看看采用了POASP的代码: 两者的不同,相信大家都能看出来了。
比较项目 插入数据:
ADO实现
Set rs = Server.CreateObject("ADODB.RecordSet")
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open SOMEDB
rs.Open <TableName>, conn
rs.AddNew
rs("Field1") = Value1
rs("Field2") = Value2
...
rs.Update
rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing
POASP实现
Dim poasp, po
Set poasp = New POAsp
Set po = New POAspObject
po.Init "对象名称", "对应的表名", "主键字段", "要进行操作的字段列表"
po.SetProperty "Field1", Value1
po.SetProperty "Field2", Value2
...
poasp.InsertObject(po)
比较项目删除数据:
ADO实现
Set rs = Server.CreateObject("ADODB.RecordSet")
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open SOMEDB
conn.Execute "delete from TableName where id=SomeID"
conn.Close
Set rs = Nothing
Set conn = Nothing
POASP实现
Dim poasp, po
Set poasp = New POAsp
Set po = New POAspObject
po.Init "对象名称", "对应的表名", "主键字段", "要进行操作的字段列表"
poasp.DeleteObject(po, SomeID)
比较项目更新数据:
ADO实现
Set rs = Server.CreateObject("ADODB.RecordSet")
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open SOMEDB
conn.Execute "update TableName set field1=Value1, ... where ID=SomeID"
conn.Close
Set rs = Nothing
Set conn = Nothing
POASP实现
Dim poasp, po
Set poasp = New POAsp
Set po = New POAspObject
po.Init "对象名称", "对应的表名", "主键字段", "要进行操作的字段列表"
po.SetProperty "Field1", Value1
po.SetProperty "Field2", Value2
...
poasp.UpdateObject(po, SomeID)
比较项目读取数据:
ADO实现
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open SOMEDB
Set rs = conn.Execute "Select Field... from TableName where ID=XXX"
If Not rs.EOF
Value1 = rs("Field1")
Value2 = rs("Field2")
...
rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing
'在别处使用Value1, Value2...
POASP实现
Dim poasp, po
Set poasp = New POAsp
Set po = New POAspObject
po.Init "对象名称", "对应的表名", "主键字段", "要进行操作的字段列表"
Set myPo = poasp.LoadObject(po)
'myPo就是从数据库中读出的对象
'可以在后面的程序中用myPo.GetProperty("FieldName")进行读取
怎么样?是不是一种被解放的感觉?
from:asp学习网/title:ASP数据持久层抽象/ time:2007-2-7 20:54:31
本文主题,ASP