代码生成器原理
代码生成器,数据来源分两种。
1.Execl表 如图1-1
2数据库 如图1-2
A.以Execl表作为表信息
a)以如图1-1的格式编写表信息,然后每一张EXECL表的名字都要更改,如图1-3
b). 在VS中编辑窗体 如图1-4
c)引用命名空间 如图1-5
d)IO文件流操作选择EXECL路径 如图1-6
e) 通过IO 选择文件保存路径 如图1-7
F)读取Execl信息 ,放入StringBuilder 对象中,如图1-8
G) 通过IO文件流操作,向文件中写入代码如图1-9
B)通过读取数据库的表信息,生成代码
1.编辑窗体,输入数据库的链接字符串 如图2-1
2.加载表名 如图 2-2
3.选择代码的存储路径 同上 如图1-7
4.读取数据库中的表数据,查询表信息的sql语句
SELECT 表名= case when a.colorder=1 then d.name else '' end,
表说明= case when a.colorder=1 then isnull(f.value,'') else '' end,
字段序号 = a.colorder,
字段名 = a.name,
标识 = case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then ‘√'else '' end,
主键 = case when exists(SELECT 1 FROM sysobjects where xtype='PK' and parent_obj=a.id and name in (
SELECT name FROM sysindexes WHERE indid in( SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid))) then ’√‘ else '' end,
类型 = b.name,
占用字节数 = a.length,
长度 = COLUMNPROPERTY(a.id,a.name,'PRECISION'),
小数位数 = isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),
允许空 = case when a.isnullable=1 then ’√‘else '' end,
默认值 = isnull(e.text,''),
字段说明 = isnull(g.[value],'')
FROM syscolumns as a left join systypes b on a.xusertype=b.xusertype
inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name<>'dtproperties' left join syscomments e
on a.cdefault=e.id left join sys.extended_properties g on a.id=G.major_id and a.colid=g.minor_id
left join sys.extended_properties f on d.id=f.major_id and f.minor_id=0
where d.name='tabName' --如果只查询指定表,加上此条件
order by
a.id,a.colorder
5通过循环,读取数据库中每一个字段的信息,放入StringBuilder中,通过IO写入文件中 如图2-3
总结:通过代码生成器,能快速的生成3层框架(不包括显示层)和实体,同时针对每一张表能把他们共同的方法一起生成,比如基本的对每一张表的增删改查,能大量节省程序员的时间,提高工作效率!
北大青鸟鲁广校区 21220班 唐聪
本文标题:我在北大青鸟鲁广校区的学习心得—代码生成器原理,责任编辑:宏鹏,来源:武汉北大青鸟鲁广校区栏目,于12-28发布于北大青鸟鲁广校区。我在北大青鸟鲁广校区的学习很充实。今天主要给大家讲一下代码生成器原理。代码生成器数据来源是excel表格和数据库,我分别在这里面操作。通过代码生成器操作,可以提高效率。
预约将免费领取7天课程体验卡
只为您方便就学
专业老师24小时1对1学习指导
定制专属于你的专属学习方案
微信号:17740513250
微信号:17740513250