代码生成器原理



整个架设思路分的4个部分:
A:底层物理数据库层,主要是存储数据用的。
B:数据库访问层,主要是为了写一套代码可以跑在多种数据库上。
C:一些辅助工具、基础组件,是为了加强自动产生代码的功能、简化代码复杂性,进行合理的分工协作用的。
D:自动生成的代码部分,用PowerDesigner设计简洁明了、易于沟通理解,代码分自动生成及人工部分,为了重复生成方便。

详细功能部分只要是分12个部分来讲解,分别如下:
01:我业务里需要的表,是自己的业务里建立的,不大可能有个万能的表,能把所有的业务都能覆盖了。
02:这是系统里通用的一些表,例如序号生成器表、记录当前的序号使用情况,有点儿像Oracle的序列。
03:这个是一个数据库访问层的基础类,其他几个类都继承了这个类,在这个类的基础上进行个性化扩展,重复的代码会少一些。
04:为了实现不同数据库的个性化功能,每个具体数据库采用了个性化的实现,例如获取当前时间,各种数据库都有些不一样。
05:常用的数据库操作,都封装在这个类里了,其实我们天天在做的就是添加、删除、修改、查询而已,没啥了不起的。
06:这个是我的基类,里面有很多功能都封装好了,别的类继承一下,就会有很多功能自动就有了,不用所有的代码都要生成,共性的代码,基础类里写就可以了。
07:SQL语句人工写太烦恼了,就算用生成器写也不太好,数据库表名字段名经常若有变动,程序改来改去很烦恼,而且测试也不太好测试,用生成器的好处就是在在编译阶段发现错误,将错误扼杀在编译阶段。
08:是我的序号生成器、排序码生成器,数据都需要排序功能的,先输入的数据排在前面?还是后输入的数据排在前面?还是我人工需要干预数据的排序顺序?有生成器生成排序码、然后接着想怎么处理都方便了,可以满足个性化的数据排序需要了。
09:PowerDesigner是非常优秀的数据表结构设计工具,可以设计多种数据库的表结构,也算是业界的一个标准一样了,我们的代码生成器直接能读懂你的设计文档,也挺有意思的,比读取数据里的表感觉档次高一些,毕竟我们是专业的IT软件人员嘛。
10:这是自己写的代码生成器,很简单,很原始,自己想怎么修改就怎么修改,生成的代码,还有注释呢,你自己想扩展也可以的,总共也就1000行代码而已,读几次就全明白了。
11:这里是代码生成器目前可以生成的代码,以后精力充沛了,可以把页面的代码页生成生成,服务层的代码也可以生成,就看有没有时间去折腾了,或者页面层、服务层的代码通过复制粘贴标准例子程序来搞定,也很方便的,未必代码生成器就强多少。
12:个性化的业务逻辑还是需要自己写sql语句实现,这时候代码就不要放在一起,我设计变了,整个代码可以重新生成,但是别覆盖我人工写的代码部分,这部分被覆盖了,损失还是很惨重的了,不能因为设计变了,重新生成了代码,自己辛苦写的程序都丢了吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/289471.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Blog.Core开源】将Program升级为.NET6.0版本

大家假期好,好久不见,之前忙于其他事情,公众号暂时搁置了一个月了,新的一年开始了,很多小伙伴开始催更了,粉丝的要求必须满足。2022年打算重点推广BCVP社区,所以还是希望有愿意投稿的小伙伴&…

python画两条曲线_查找在matplotlib中绘制的两条曲线之间的区域(在区域之间填充)...

我有两条曲线的x和y值列表,它们都有奇怪的形状,而且我没有任何函数。我需要做两件事:(1)绘制它并对曲线之间的区域进行着色,如下图所示;(2)找到曲线之间该着色区域的总面…

OXY OPENCART 商城自适应主题模板 ABC-0020-05

OXY OPENCART 商城自适应主题模板 ABC-0020-05OXY FEATURESLayoutFoundation Framework – the most advanced responsive front-end framework in the world.100% Fully Responsive – Solid Flexible Responsive Layout that scales from 320px to 1440px.You can disable re…

年月跨度_建筑结构丨国内跨度最大的张弦桁架工程——合肥滨湖国际会展中心二期首榀桁架滑移成功...

来源:中建科工 华中大区。2020年12月8日全国公建领域最大跨度的张弦桁架钢结构工程合肥滨湖国际会展中心二期首榀桁架滑移顺利完成合肥滨湖国际会展中心二期项目位于合肥市滨湖新区锦绣大道与广西路交口,该项目2#综合馆建筑面积约4.8万平方米&#xff0c…

【C#/.NET】不用AutoMapper,我用啥呢?

微信公众号:趣编程ACE关注可了解更多的.NET日常实战开发技巧。如需源码请后台留言源码;**[如果觉得对您有帮助,欢迎关注]TinyMapper简介本文来自社区群粉丝投稿TinyMapper是一个.NET平台下的一个轻量级对象映射工具,号称是.Net平台下最快的对…

HBase键值分片的简单运用

1.基本原理介绍 HBase的存储是通过行键建立索引进行存储的,而且HBase只支持一级索引,因此只要通过行键才能很快的找到需要的数据。HBase是一个分布式的系统,HBase通过行键的分片,把不同的数据存储在不同的主机上。1).顺序分片依据…

我要3万取款机怎么取_7万的新宝骏RS-3怎么样?用车三个月后,车主说出了实话...

小型SUV领域,作为目前SUV市场之中竞争最激烈的细分领域之一,已经成为众多车企的必争之地。而正因如此,小型SUV市场所具有的车型非常的丰富,且其中更是一点也不缺爆款车型,正如在去年底刚上市的一款小型SUV——新宝骏RS…

MODIS数据说明

MODIS目前主要存在于两颗卫星上:TERRA和AQUA。TERRA卫星每日地方时上午10:30时过境,因此也把它称作地球观测第一颗上午星(EOS-AM1)。AQUA每日地方时下午过境,因此称作地球观测第一颗下午星(EOS-PM1)。两颗星相互配合,每1-2天可重复…

.NET 为大型应用接入 ApplicationStartupManager 启动流程框架

对于大型的应用软件,特别是客户端应用软件,应用启动过程中,需要执行大量的逻辑,包括各个模块的初始化和注册等等逻辑。大型应用软件的启动过程都是非常复杂的,而客户端应用软件是对应用的启动性能有所要求的&#xff0…

思科为其核心网络业务增加了订阅服务

据国外媒体报道,思科系统公司的核心网络业务于周二开始进军订阅服务市场,其向大型企业宣布了一系列新的安全和自动化工具。 这个新的“直观网络”代表了思科如何从其旗舰业务中获得收入的重大变化。San Jose公司一直依赖于网络设备的销售,这些…

if函数python_pythonif函数

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python的内置的函数round() a 1.12586 #保留小数的函数,四舍五入,参数为保留小数点后的位数 pr…

Foundatio - .Net Core用于构建分布式应用程序的可插拔基础块

简介Foundatio - 用于构建分布式应用程序的可插拔基础块•想要针对抽象接口进行构建,以便我们可以轻松更改实现。希望这些块对依赖注入友好。•缓存:我们最初使用的是开源 Redis 缓存客户端,但后来它变成了具有高许可成本的商业产品。不仅如此…

开讲啦观后感2017计算机科学家,开讲啦观后感2017

1 开讲啦观后感2017(一)是因为有爱,我才付出的,因为是我爱的,而我又付出了,所以我会更爱。这是郑教授的演讲《你为什么读大学》中给我映像最深刻的一句话。我也能从这句话中找到我读大学的原因因为我爱。古时候说你十年寒窗苦读&a…

php 解压zip

2019独角兽企业重金招聘Python工程师标准>>> /*** 解压zip* param type $file* param type $destination* return boolean*/public function unzip_file($file, $destination){ $zip new ZipArchive() ; if ($zip->open($file) ! TRUE) {return $this->error…

如何评价国内SRC纷纷上线“白帽子协议”?

2017年6月1日21:21分 某监狱里,对话如下: 犯人A:你们都是怎么来的? 犯人B:我是XX漏洞平台挖漏洞不小心进来的。 犯人C:我是XX平台路人甲,输错命令了rm -rf / (批量删除) 犯人D:我是某测评中心的忘了要授权了…

SQL Server数据库备份的镜像

SQL Server数据库备份的镜像 原文:SQL Server数据库备份的镜像SQL Server数据库备份的镜像 一个完整备份可以分开镜像 USE master GOBACKUP DATABASE [testdatabase] TO DISK NC:\testdatabase1.bak MIRROR TO DISK ND:\testdatabase2.bak WITH FORMAT, INIT GO 一个完整备份…

C# 观察文件的更改

使用 FileSystemWatcher 可以监视文件的更改。事件在创建、重命名、删除和更改文件时触发。这可用于如下场景:需要对文件的变更做出反应,例如,服务器上传文件时,或文件缓存在内存中,而缓存需要在文件更改时失效。因为 …

php 自动创建目录

2019独角兽企业重金招聘Python工程师标准>>> /*** 创建目录* param type $path* param type $mode* return type */public function rmkdir($path, $mode 0777) {return is_dir($path) || ( $this->rmkdir(dirname($path), $mode) && $this->_mkdir(…

油管螺纹尺寸对照表_yt15硬质合金刀片尺寸|A320焊接刀头参数

硬质合金刀片牌号表示方法如下图:yw1硬质合金刀片a320钨钛钴类硬质合金主要成分是碳化钨、碳化钛(TiC)及钴。其牌号由“YT”(“硬、钛”两字汉语拼音字首)和碳化钛平均含量组成。例如,YT15,表示平均碳化钛(TiC)15%,其余为碳化钨和…

python实验原理_Python实验报告八

安徽工程大学Python程序设计 班级:物流192 姓名:唐家豪 学号:3190505234 成绩: 日期:2020/06/03 指导老师:修宇 【实验目的】 : 掌握读写文本文件或 CSV 文件,进而对数据进行处理的方…