使用XML + XSLT进行实体类代码生成 (一)
已经有一阵子没能安静下来研究代码,这两天好不容易有点空。赶快将最近的一些想法进行论证和验证一下。
背景
由于前一阵子有个项目,需要用到将数据库里面的表生成实体类。虽然不是什么很麻烦的事情,但是也经不起量大啊!由于没有找到一个适合的代码生成工具,后来没办法只好写了一段程序,将数据库的字段用字符串拼起来组成要用的类然后输出。办法随笨了点,但也还实用。但是太过死板,不方便修改。后来想用XML + XLST可以实现用模板来定制这些类,这样应该好多了。于是,这两天就简单的写了个程序,结果感觉还不错。
一, 获取数据库中的字段和数据类型
我这里是用了两个系统存储过程sp_columns和sp_pkeys来获取的,当然你也可以使用sp_help来获取这些值。
二,将获取的列和数据类型转成XML数据。
只需要写一段数据库访问程序调用系统存储过程sp_columns和sp_pkeys并将你要的生成代码的数据表的名字传给它们的参数@table_name就可以了。
部分代码:

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

(注:这里为了显示xml方便所以生成了一个完整的xml文件,但在后面使用的时候请将第14,15,44行注释掉)
当程序运行时,生成的的XML数据是这样就可以了,当然你也可以根据自己的需要生成自己需要的格式:
其中:
<FIELDS></FIELDS>部分会生成实体类的属性;
<PrimaryKeys></PrimaryKeys>部分会用在实体类的New函数中;
<Query></Query>部分用来配置将来要生成DO代码的增删改以及查询用的函数。
<Command><Command>里面的FIELD用作增删改查询中需要的参数和参数对应的字段。
-- 未完带续