代码生成器原理

今天突然想玩玩这个。。搞搞代码生成器,今天把原理发出来。。写好Demo陆续更新

整个架设思路分的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语句实现,这时候代码就不要放在一起,我设计变了,整个代码可以重新生成,但是别覆盖我人工写的代码部分,这部分被覆盖了,损失还是很惨重的了,不能因为设计变了,重新生成了代码,自己辛苦写的程序都丢了吧。

时间: 2025-01-31 09:08:11

代码生成器原理的相关文章

简单代码生成器原理剖析(二)

上篇<简单代码生成器原理剖析(一)>分 析了代码生成器的原理,查询数据库系统视 图:INFORMATION_SCHEMA.TABLES. INFORMATION_SCHEMA.COLUMNS  可以获得数据库中表.列的相关信息,再运用StringBuilder类的其AppendLine方法追加字符串,最后早运用 File.WriteAllText方法将字符串写入文件. 第二版代码生成器在第一版的基础上扩展了以下功能: 使用了部分类(partial):当使用大项目或自动生成的代码(如由 Wind

简单代码生成器原理剖析(一)

上篇文章(深入浅出三层架构)分析了简单三层架构的实现.包括Model,DAL(数据访问层),BLL(业务逻辑层)的实现. 实际开发中,由于重复代码的操作,会花费大量时间,如果以代码生成器来自动生成三层架构代码,即节省精力,又可以节省大量的时间来做其他业务逻辑的代码,提高开发效率. 常用的代码生成器有:动软,CodeSmith 等. 简单代码生成器的基本功能描述: 一键生成Model,DAL,BLL,包括对应数据库中表的Model的自动生成,包括生成属性.添加.修改.删除.查询. 界面展示: 生成

分享一套Code Smith 搭建N层架构模板

开篇 平常开发时,由于冗余代码过多,程序员做重复的工作过多势必会影响开发效率.倘若 对重复性代码简单的复制.粘贴,虽然也能节省时间,但也需仔细一步步替换,这无疑也是一件费力的事.这时我们急需代码生成工具,根据一套Template 快速生成我们需要的代码.代码生成器原理简单,完全可以开发一套适合自己的代码生成器,一个最简单的代码生成器,有几点你需要关注下: 查询系统视图:INFORMATION_SCHEMA.TABLES. INFORMATION_SCHEMA.COLUMNS  可以获得数据库中表

jeecg公开课今晚主题:新版本功能介绍、online原理和代码生成器,欢迎大家报名

http://ke.qq.com/cgi-bin/courseDetail?course_id=74100

MVC模型的基本原理及实现原理

[转载]MVC架构在Asp.net中的应用和实现 摘要:本文主要论述了MVC架构的原理.优缺点以及MVC所能为Web应用带来的好处.并以“成都市信息化资产管理系统”框架设计为例,详细介绍其在Asp.net环境下的具体实现.旨在帮助Web设计开发者更好的了解和掌握MVC,合理利用MVC构建优秀的Web应用. 关键字:MVC.视图.控制器.模型.Asp.net Application and Implementation of MVC Construction in Asp.net Abstract

Abp项目构建、swagger及代码生成器

推荐博客 1. Abp项目实践推荐参照大神角落的白板报的系列博客,比较新,并且是亲身体验. http://www.cnblogs.com/wer-ltm/p/6824716.html 2. Abp源码整体原理结构.类关系图等参看大神Hk Zhang http://www.cnblogs.com/1zhk/p/5268054.html 一.利用abp模板构建项目 1.打开官网https://aspnetboilerplate.com/Templates (2)     生成项目后会自动下载代码 二

MVC与设计模式的关系及MVC的实现原理和设计原理

1 MVC介绍 众所周知MVC不是设计模式,是一个比设计模式更大一点的模式,称作设计模式不合理,应该说MVC它是一种软件开发架构模式,它包含了很多的设计模式,最为密切是以下三种:Observer (观察者模式), Composite(组合模式)和Strategy(策略模式).所以说MVC模式又称复合模式.MVC(Model-View-Controller) 模式的基本思想是数据,显示和处理相分离.模型(Model)负责数据管理,视图(View)负责数据显示,控制器(Controller)负责业务

自己动手写三层代码生成器学习总结

一.三层代码生成器关键:数据库的重要视图 今天看了下老杨的视频教程,写了一把三层代码生成器,理解了一下简单的代码生成器是如何实现的,其重点就在于数据库系统视图. 代码生成器需要了解数据库中的几个非常重要的视图,比如INFORMATION_SCHEMA(.TABLES..COLUMNS)以及一些类型属性Data_Type,Column_Name等.然后利用模板,通过StringBulider来进行字符串的拼接,也就是AppendLine()方法.当然,其中涉及到SQL方法封装.数据库类型向.NET

mybatis自定义代码生成器(Generator)——自动生成model&amp;dao代码

花了两天的时间研究了下mybatis的generator大体了解了其生成原理以及实现过程.感觉generator做的非常不错,给开发者也留足了空间.看完之后在generator的基础上实现了自定义的生成器.代码start..... 建立了一个maven工程(common)项目结构: ----------------------------------------------------------------pom.xml-------------------------------------