长期来一直在做关于数据库的业务开发。主要是web应用程序,间或会开发windows应用程序。
虽然我经常使用sqlserver数据库。但是也就刚刚开始学习一段时间比较热衷于存储过程
后来一直有个想法就是希望自己的应用能很方便的在各种数据库里面移植。于是自己做了一个简陋的DBHelper
简单的对各种常用数据库的操作进行了封装,然后把各种操作依旧采用sql语句的方法来执行。
后来又觉得每次对sql的调整:比如更改排序方式 更改检索数据的条数等等的操作都需要重新编译比较繁琐。
于是决定自己做一个模块将SQL语句的执行封装到XML脚本中去。
YOK曾经过说编译和修改xml脚本需要的时间差不多
我说万一客户没有安装vs.net怎么办,他说有nant
不过我还是觉得能不能编译就不编译,何况还要重新部署。而且万一客户没有源码怎么办。客户要进行一些简单的hack又怎么办
于是我还是做了现在的XMod:
Xmod的目的是将原来需要放到代码里面的SQL语句及需要传入的参数独立出来存放到xml文件中进行描述。然后在程序执行过程中预加载该xml文件。当需要执行某sql操作时通过对应的函数名去读取xml里面的sql语句然后再执行数据库操作。
在XMod中我定义了一个Boxi.XMod.BoxiFunctions类来处理xml脚本,首先它能够根据名称来获取相应的xml节点,然后我们可以通过一个SetExtendedAttribute的方法将需要的参数传入到实例化后的Boxi.XMod.BoxiFunctions对象中,然后调用exec()方法就能完成一次数据库操作。
其具体的使用方法如下:

2

3

4

其中Preturn就是执行后的返回值。它是一个object对象。我们可以根据需要对其进行强制转换。
如果用老式的方法一般为如下操作

2

3

4

5

6

7

8

9

10

11


12

13

通过定义如下格式的xml文件来配置一个需要完成的数据库操作,关于配置文件的配置方法在下面xml文件中的注释部分进行了说明:

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

关于xml脚本的编辑软件界面截图如下:



不知道关于这样一个东西大家的感觉如何 希望听听大家的意见