《关联自动切片生成DivCss软件-2017全能免费版》,这是个免费的H5页面快速生成的工具,这个工具不用手写代码就可以生产H5页面,代替了传统的手写代码,大大提升了开发效率,关键是操作简单快捷,推荐使用。
但是这是一种基于单个文件的解决方案,即我们必须为每一个生成的存储过程建立一个模板。如果我们提供一种基于多文件的代码生成方式,将会为编程人员带来极大的便利。借助于T4 ToolBox这个开源工具箱,多文件的SQL Generator的实现变得异常简单。[文中的例子可以从这里下载]目录 二、创建自定义的Generator 三、ProcedureGenerator如何被使用?一、多文件代码生成器会带来多大的便利?我们先来直观的感受一下较之《上篇》提供的单一文件的代码生成器,基于多文件的代码生成解决方案会为开发人员带来多大的便利。 同样对于《上篇》创建的数据表T_PRODUCT,之前我们为了生成三个不同的存储过程,我们不得已需要创建3个不同的T4模板文件。实际上我们更需要的方式只需要创建一个T4模板,让我们的SQL Generator自动为我们生成3个包含相应存储过程的.sql附属文件,如左图所示(点击看大图)。有的时候,基于单个数据表的存储过程生成方式我们依然觉得不方便。如果我们能够在T4模板文件中指定的数据表的列表,让我们的SQL Generator为列表的每一个数据表都生成CUD三个存储过程,这样的方式更加具有吸引力。如右图所示(点击看大图),一个订单模块包含两个具有主子关系的两张表(T_ORDER和T_ORDER_DETAIL),现在我们在一个T4模板中指定这两个表明,通过SQL Generator可以帮助我们生成6个包含存储过程的.sql附属文件。甚至有的时候我们连数据表列表都无需指定,让SQL Generator为所有的表都生成相应的存储过程。我的例子中没有提供这样的功能,但是实现自来不会存在任何问题。二、创建自定义的Generator在《上篇》中我创建了一个抽象的ProcedureTemplate类,以及三个基于生成CUD存储过程的具体ProcedureTemplate:InsertProcedureTemplate、UpdateProcedureTemplate和DeleteProcedureTemplate。它们都将直接服务于我们今天将要提供的基于多文件的SQL Generator。在《上篇》中,这四个Template分别定义在4个不同的TT文件中,3个具体的ProcedureTemplate通过#@include指令将抽象ProcedureTemplate模板文件包含过来。由于我们将要创建的T4模板将会使用到这四个类,如果我们用四个#@include指令将四个TT文件包含过来,由于T4引擎将会导致对ProcedureTemplate的4次包含,更好将会导致变异问题。个人觉得这应该算是T4引擎解析包含关系的一个局限性,为了解决这个问题我们不得不抽象的ProcedureTemplate和三个具体的ProcedureTemplate都合并成一个TT文件。T4 ToolBox为类库中为了提供了一个抽象的T4Toolbox.Generator类用于实现多文件的代码生成。为此我们创建一个TT模板文件,定义了如下一个继承自该类的ProcedureGenerator。ProcedureGenerator的核心是通过属性Templates定义的类型为IEnumerableProcedureTemplate的ProcedureTemplate列表,这个列表在存储过程中进行初始化。而对于ProcedureGenerator的构造函数,处理定义了一个表示数据库连接字符串的databaseName的参数外,并以数组参数的形式指定了生成的存储过程基于的数据表名的列表。#@ import namespace="System.Collections.Generic" ##@ include file="ProcedureTemplate.tt" ##@ include file="T4Toolbox.tt" ##+publicclass ProcedureGenerator : Generator{public IEnumerableProcedureTemplate Templates{get; private set;}public ProcedureGenerator(string databaseName, paramsstring[] tableNames) {if(null == tableNames || tableNames.Length == 0) {thrownew ArgumentNullException("tableNames"); } this.Templates = InitlizeTemplates(databaseName,tableNames); }private IEnumerableProcedureTemplate InitlizeTemplates(string databaseName, string[] tableNames) { foreach(string tableName in tableNames) {yieldreturnnew InsertProcedureTemplate(databaseName, tableName);yieldreturnnew UpdateProcedureTemplate(databaseName, tableName);yieldreturnnew DeleteProcedureTemplate(databaseName, tableName); } }protectedoverridevoid RunCore() {foreach(ProcedureTemplate tempalte inthis.Templates) { tempalte.RenderToFile(tempalte.GetProcedureName() + ".sql"); } }}#真正的存储过程的T-SQL脚本实现在重写的RunCore中。由于具体的文本转化逻辑都定义在了ProcedureTemplate中了,所以在这里我们需要遍历的ProcedureTemplate *** 中每一个Template对象,调用RenderToFile *** 将相应的存储过程的脚本写入以存储过程命名同名的.sql文件中。三、ProcedureGenerator如何被使用?我们最后来看看我们创建的ProcedureGenerator最终如何被应用于具体的代码生成。其实很简单,我们只需要创建相应的模板文件,通过#@include将定义ProcedureGenerator类的TT文件包含近来,最后以代码语句调用块(#StatementCode#)的形式实力化该对象,并调用Run *** 即可。在构造函数中指定数据库连接字符串的名称和数据表名的列表。下面是基于但表的T4模板。#@ template language="C#" hostSpecific="true" debug="true" ##@ include file="Templates\ProcedureGenerator.tt" ##new ProcedureGenerator("TestDb","T_PRODUCT").Run();#下面是基于多表的T4模板:#@ template language="C#" hostSpecific="true" debug="true" ##@ include file="Templates\ProcedureGenerator.tt" ##new ProcedureGenerator("TestDb","T_ORDER","T_ORDER_DETAIL").Run();#当你代码生成工作执行之后,会多出一个与TT文件同名的附属文件,你需要手工删除掉它。从数据到代码——通过代码生成机制实现强类型编程[上篇]从数据到代码——通过代码生成机制实现强类型编程[下篇]从数据到代码——基于T4的代码生成方式
链接:
提取码:6v88
软件名称:狼奔代码生成器V6.1绿色版
语言:简体中文
大小:11.48MB
类别:系统工具
介绍: 狼奔代码生成器是一款小巧实用的专业化代码生成工具,狼奔代码生成器官方版功能强悍,便捷好用,只需要使用PowerDesigner设计好数据库结构,就能方便生成代码,软件还支持根据sql-server数据库结构生成代码。
你好,推荐你尝试 listcode.cn 增删改查代码生成器, 在线的,只要有db脚本就可以生成。对外键关系支持的很好。
提供java,python,php,nodejs等常见语言和框架的 CRUD代码生成服务(即 常见的增删改查),后台代码、前端界面、js等,一站解决。
相比于传统的增删改查代码生成器,ListCode 做了很多完善, 不论从功能的丰富程度,还是支持的语言、技术框架种类上都有了很大进步,可以很大的提高开发效率,减少人工介入修改的工作量。
功能特点:
前后端代码、js、UI一站生成
翻页,多条件联合查询
外键关联编辑、展示
输入验证,错误提示
常见类型个性化编辑、展示
完整REST API接口
具体支持的语言和技术框架:
java,springmvc jpa mybatis
php:laravel,thinkPhp5
python:flask,tonardo
js:vue,nodejs
体验demo入口
望采纳
代码生成器就是根据特定的要求制定格式,灵活输出在项目中重复要用到的代码,节省项目时间,现在免费的代码生成器code *** ith我经常用的,小玩意,不花钱
生活中,总有一些人在睡觉时总是磨牙,发出一阵阵磨牙声。很多人认为磨牙是正常的情况,因此疏忽了治疗。其实,磨牙和很多因素有关,不排除是身体健康出现了问题。因此,经常磨牙的人最好到医院检查,看看是哪些原因...
编辑导读:要想在网上开店,许多人会首选淘宝。可是淘宝上的店家千千万,许多商家还来不及做出后果就已经支付了庞大的本钱。作为最大的电商平台之一,淘宝是如何赚钱的呢?本文将从五个方面展开阐明,但愿对你有辅佐...
您好:人体血液中的氧气,是由红细胞中的血红蛋白携氧运输至全身各部的。红细胞的机能主要是由其中血红蛋白来完成的。1、运输氧和二氧化碳。2、对。 红细胞中的血红蛋白在含氧量高的地方容易与氧结合,在含氧量低...
如何提高网站的用户体验?网站建设时请务必以用户搜索为中心,以用户的需求为宗旨,制作出一份对搜索引擎友好的网站来,不然后面优化很难进行。那网站如何建设才能提高用户体验度呢?本文就给大家带来提高网站用户体...
利用QQ空间做排名好处挺多的。 1、qq空间大平台高权重可以利用它做快速排名。 2、开通一个QQ空间成本低效益高几百倍的利润。 3、可以用站群模式来做效果更好 4、简单,有点基础的都能做,谁做...
本文导读目录: 1、有没有什么搞笑对白? 2、【高分跪求】→《黑客和小白》的幽默笑话? 3、收集点搞笑的对话 4、谁有特搞笑的笑话 5、帮忙编个搞笑对白啊!!! 6、网络笑话,最好...