在項目開發的過程當中,項目組開發成員的編程風格差異和數據庫操作語句SQL的靈活性給項目組帶來了越來越多的操作和維護難度。
比如:從user表中取出所有數據,有的人會寫成“select * from user”,有的人會寫成“select all from user”,雖然在操作中不會有任何的錯誤,但在其他人讀程序的過程時就會產生不好的感覺。
如果這種程序差異在項目中的數量級很多,那麼在開發的過程當中程序就會出現各種各樣的風格,在維護的過程中就會拼命的撓頭並詛咒那些當初寫程序的人。
為了整篇文章的舉例,現在我們在數據庫中建立如下表
TBL_USER
USERID BIGINT
USERNAME VARCHAR(20)
PASSWord VARCHAR(20)
CREATETIME DATE
TBL_USER_INFO
USERID BIGINT
EMAIL VARCHAR(64)
MOBILE VARCHAR(13)
一、分析
A、分析select語句
於是使用XML來封裝數據庫操作語句成為項目規范化操作的第一步驟。在這個步驟中,我們將舉幾個例子來逐步實現封裝的目的。
比如 “ SELECT USERNAME, PASSWord FROM TBL_USER ” 這個語句,分析成XML文件時可以有各種各樣的寫法,我們現在使用如下的表達方式:
分析(1)
1
2 <:get>
3 <:property name="“username”" type="“string”/">
4 <:property name="“password”" type="“string”/">
5
6
在第一行的句子中使用 dbtrans 為節點名稱,
屬性name為這個交易的名稱,這裡為“selectUser”,
屬性table為索取表的名稱,這裡為“TBL_USER”,
屬性method為操作數據庫的方法,這裡為“select”,
子節點
子節點
屬性name為字段的名字,
屬性type 為字段的類型,這裡設置類型在後面的程序中可以體現出來。
對於“SELECT USERNAME, PASSWord FROM TBL_USER WHERE USERID=123”語句,我們根據上述的分析,則可將XML描繪為:
分析(2)
1.
2.
3 <:property name="“userid”" type="“long”/">
4
5 <:get>
6 <:property name="“username”" type="“string”/">
7 <:property name="“password”" type="“string”/">
8
9
如果使用的是like操作,我們可以將第3句描述成為<:property name="“username”" type="“string”" match="“like”/">
對於“SELECT USERNAME, PASSWord FROM TBL_USER ORDER BY USERNAME DESC”這個語句,XML如下分析:
分析(3)
1.
2 <:get>
3 <:property name="”username”" type="”string”/">
4