使用XML封装数据库操作语句的实现(2)
2008-02-23 09:39:56来源:互联网 阅读 ()
INSERT INTO TBL_USER_INFO ( USERID, EMAIL, MOBILE ) VALUES ( 100, ‘test@test.com’, ‘1234567890’ )
描绘为XML文件时我们可以描绘如下
分析5)
1. <dbtrans name=”insertUser” table=”TBL_USER” method=”insert”>
2 <primarykey name=”userid” >
3 <set>
4 <property name=”username” type=”string”/>
5 <property name=”password” type=”string”/>
6 </set>
7 </dbtrans>
以及
1. <dbtrans name=”insertUserInfo” table=”TBL_USER_INFO” method=”insert”>
2 <set>
3 <property name=”userid” type=”long”/>
4 <property name=”email” type=”string”/>
5 <property name=”mobile” type=”string”/>
6 </set>
7 </dbtrans>
C) 分析DELETE语句
Delete语句最常用的可以分为两种,一种是按照键值删除,一种是全部删除,为此我们将此操作划分为两种类型,delete和clear
对于delete类型,举例为:
DELETE FROM TBL_USER_INFO WHERE USERID=123
描述为:
分析6)
1. <dbtrans name=”deleteUserInfo” table=”TBL_USER_INFO” method=”delete”>
2 <key>
3 <property name=”userid” type=”long” />
4 </key>
5 </dbtrans>
对于clear类型,举例为:
DELETE FROM TBL_USER_INFO
描述为:
分析7)
1. <dbtrans name=”clearUserInfo” table=”TBL_USER_INFO” method=”clear”>
2 </dbtrans>
D)分析UPDATE语句
从update通常的操作我们可以知道使用XML表述时将会出现两种tag,包括<key>和<set>,比如:
UPDATE TBL_USER_INFO SET EMAIL=’aaa@aaa.com’ WHERE USERID=123
描述称XML为:
分析8)
1. <dbtrans name=”updateUserInfo” table=”TBL_USER_INFO” method=”update”>
2 <key>
3 <property name=”userid” type=”long” />
4 </key>
5 <set>
6 <property name=”email” type=”string” />
7 </set>
8 </dbtrans>
二:程序设计
好的,在分析了XML文件之后需要我们进入到程序的设计上来了。从以上实现的分析我们可以清楚的看到要实现以上操作,我们必须要做到以下几步:
1:读取XML文件
2:定位相应的交易节点
3:拼SQL 语句
4:数据库操作
5:取数据
6:返回数据
其中针对第一步的读取文件,我们可以封装所有的XML parse语句以及前期的操作封装
进入一个类之中,这里我们命名为 XMLLoadFile。
交易处理的过程包括2,5,6三个步骤,可以封装成XMLTransaction类中。当然返回数据这个操作可以单独抽出来作为一个相应的返回类,如果这样是为了在返回的数据报文做处理,比如可以返回XML,Vector或者Hashtable或Map等。这里暂定返回数据为Vector类型,所以将第6步封装进来。
拼装SQL语句,独立建立一个类(XMLCombine),当然也可以分为多个,比如SelectCombine,insertCombine等,这里我们进行统一封装。
数据库操作单独封装成一个类,XMLExecuteSQL。
以上所有的类统一了一个出口类,这里为XMLUtils。这个类提供的几个方法为外部数据操作的主要方法,比如select, insert, delete, update等,还有提供外部程序存取数据的几个方法,比如:setTransNode(设置交易节点),setTransValue(设置交易数据值), setTransKeyValue(设置交易键值数据值)
三:外部程序调用
对于select语句,分析1)所需编写的程序如下
XMLUtils util = new XMLUtils();
util.setTransNode(“selectUser”);
Vector vRtn = util.select( con );
分析2)为
XMLUtils util = new XMLUtils();
util.setTransNode(“selectUserByKey”);
util.setTransKeyValue(“userid”, 123 );
Vector vRtn = util.select( con );
对于insert语句,分析5)程序如下
XMLUtils util = new XMLUtils();
util.setTransNode(“insertUser”);
util.setTransValue(“username”, “test” );
util.setTransValue(“password”, “test” );
Vector vRtn = util.insert( con ); //假设操作成功
long userid = ((Long)((Hashtable)vRtn.elementAt(0)).get(“userid”)).longValue();
util.setTransNode(“insertUserInfo”);
util.setTransValue(“userid”, userid );
util.setTransValue(“email”, “test@test.com” );
util.setTransValue(“mobile”, “1234567890” );
Vector vRtn = util.insert( con );
对于 delete语句 分析 6)程序如下
XMLUtils util = new XMLUtils();
util.setTransNode(“deleteUser”);
util.setTransKeyValue(“userid”, 100);
util.delete( con );
对于update语句,分析 8)程序如下
XMLUtils util = new XMLUtils();
util.setTransNode(“updateUserInfo”);
util.setTransKeyValue(“userid”, 123);
util.setTransValue(“email”, “aaa@aaa.com”);
util.update( con );
大家在看这些SQL的操作时,是不是觉得很工整,也很舒服呢?这样做的好处很多,程序员可以不必太多的去拼写SQL 语句,封装的操作可以使所有程序员的程序都可以写的很工整,并有统一的风格。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
