`
marlonyao
  • 浏览: 252747 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用CodeSmith生成SQL

    博客分类:
  • .NET
阅读更多

CodeSmith 是一个代码生成工具,你可以用它生成一小段代码片断,也可以用它生成整个工程。CodeSmith采用ASP.NET的模板语法,其过程也都是先将模板转化成C#代码文件,然后编译运行C#代码文件。

 

在做Web项目时,如果你不用Hibernate之类的ORM工具的话,经常要写SQL语句,稍不注意就会写错,这时可以用CodeSmith来帮助生成SQL语句。

 

首先需要建立一个模板文件,模板文件以cst(CodeSmith Template)结尾。每个模板文件可以接受一个或多个参数,对于我这里的例子,只需要接收一个Table参数,代表为哪个表生成SQL语句。CodeSmith提供SchmeExplorer来写数据库进行集成,点击View-> Scheme Explorer可以添加数据库。模板文件开头:

 

<%@ CodeTemplate Language="C#" ResponseEncoding="UTF-8"%>
<%@ Property Name="Table" Type="SchemaExplorer.TableSchema" Default="" Optional="False" %>

<%@ Assembly Name="System.Data" %>
<%@ Assembly Name="SchemaExplorer" %> 
<%@ Import Namespace="System.Data" %> 
<%@ Import Namespace="SchemaExplorer" %>
<%@ Import Namespace="System.Collections.Generic" %>
<%@ Import Namespace="System.Text" %>
 

第一行声明了模板使用的语言,这里使用C#,还可以使用VB。第二行声明了模板接收的参数,参数名为Table,类型为TableSchema,这是CodeSmith内建的一个类型。接下的几行指定了依赖的Assembly,以及要导入的命名空间。

 

SELECT <%=SelectStat(Table.Columns)%>
FROM <%=Table.Name%>

<script runat="template">
public string SelectStat(ColumnSchemaCollection columns)
{
	StringBuilder sb = new StringBuilder();
	for (int i = 0; i < columns.Count; i++) {
		ColumnSchema col = columns[i];
		sb.Append(col.Name);
		if (i < columns.Count-1)
			sb.Append(", ");
	}
	return sb.ToString();
}
</script>
 

CodeSmith模板的格式和ASP.NET很相近,嵌入代码是放在<%..%>之间,块代码<script>...</script>之间,只是runat不是server而是template。

 

创建完成之后,在Properties窗口设置Table参数的值,点击值区域会弹出对话框让你选择数据库表,你首先得在Scheme Explorer添加数据库才行。然后点击工具栏上Run按钮或者F5,就可以得到模板运行之后的结果。

 

你还可以添加Insert,Update,甚至存储过程,还可以根据项目习惯生成其它代码,例如如何调用SQL,如何给SQL添加参数。CodeSmith还可以做得更多,我使用CodeSmith生成对所有参考表的CRUD方法。CodeSmith自带的模板还可以生成整个项目。

 

分享到:
评论

相关推荐

    CodeSmith的SQL脚本生成模板

    "使用codesmith生成sql脚本的模板,通过设置简单的属性即可"这句话表明,CodeSmith提供了一种简便的方式来配置模板属性。这些属性可能包括数据库连接信息、表名、列名等,开发者只需在模板中指定这些属性,CodeSmith...

    CodeSmith代码生成模板(Access和Sql server) C#语言。

    2、SQL 包括使用Sql Server数据库时三层代码的自动生成。 3、Procdure 包含一个根据表生成存储过程的模板 4、Model 包含一个一次生成所有Model中实体类的模板。 CodeSmith模板可以由用户自定义。其语法与C#语法类似...

    CodeSmith 生成工具 6.5 (可生成Nhibernate)

    Nhibernate是一款流行的开源对象关系映射(ORM)框架,它允许程序员用面向对象的方式来处理数据库操作,减少了对SQL的直接依赖,提高了开发效率。CodeSmith 6.5结合Nhibernate,意味着用户可以通过模板自定义生成...

    codesmith 生成三层数据访问层

    根据提供的文件信息,我们可以深入探讨如何使用 Codesmith 来生成三层架构中的数据访问层(DAL)。三层架构是一种常见的软件架构模式,它将应用程序分为三个主要的逻辑层:表示层、业务逻辑层和数据访问层。这种分层...

    CodeSmith 生成三层模板

    通过使用CodeSmith生成三层模板和SqlHelper,开发者可以快速搭建起一个基础的、具备数据访问能力的.NET应用程序框架,极大地减少了编码工作量,使得开发者能更专注于业务逻辑的实现和系统的优化。这不仅提高了开发...

    codeSmith生成所有存储过程

    《codeSmith生成所有存储过程:数据访问层的高效构建》 在数据库开发中,存储过程是一种重要的编程元素,它能够封装SQL语句,提高执行效率,同时提供了一种安全、可重用的方法来处理数据库数据。CodeSmith是一款...

    CodeSmith的批量生成数据库表创建脚本的模板

    在本案例中,我们关注的是如何利用CodeSmith来批量生成SQL Server数据库表的创建脚本。 标题"CodeSmith的批量生成数据库表创建脚本的模板"暗示了我们将探讨如何使用CodeSmith的模板功能来自动化生成针对SQL Server...

    解决CodeSmith生成mysql实体没有字段注释和表注释

    标题提到的问题“解决CodeSmith生成mysql实体没有字段注释和表注释”正是针对这一需求。 首先,让我们深入理解这个问题。CodeSmith默认可能不包含对MySQL字段和表注释的支持,或者注释部分未在生成的代码中体现。要...

    codesmithprofessional SQL三层 代码生成 模版

    "codesmithprofessional SQL三层 代码生成 模版"就是这样一个工具,它专为ASP项目的开发设计,旨在通过自动化的方式生成三层架构的代码,从而节省程序员大量的手动编码时间。三层架构是一种常见的软件设计模式,它将...

    CodeSmith 创建数据字典 模板

    Create_Data_Dictionary....注意:可以在SQL Server 企业管理器中,将“描述”字段的信息写上,这样,用CodeSmith生成的HTML文件将会有“描述”信息。 非常好用! HTML随便你拷贝,到Word/Excel都很容易再调整格式。

    codesmith生成实体类、数据层类、和存储过程

    使用codesmith生成实体类,开发者无需手动创建每个字段及其属性,只需通过模板定义,codesmith会自动生成包含字段名、数据类型、属性注解等信息的类。这样不仅保证了代码的规范性,也减少了出错的可能性。 2. **...

    codesmith生成代码模板

    【codesmith生成代码模板】是一种高效开发工具,它利用模板技术来自动化代码生成,从而极大地提高了软件开发的效率。在IT行业中,特别是在大型项目或快速迭代的开发环境中,手动编写重复性的代码会消耗大量时间,而...

    CodeSmith生成SpringBoot模板

    在"CodeSmith生成SpringBoot模板"这个主题中,我们将深入探讨如何使用CodeSmith来创建针对SpringBoot项目的特定模板,包括Controller、Service、ServiceImpl、Entity、Mapper以及MapperXml层的代码。 首先,...

    codeSmith自动生成三层中的代码

    在使用CodeSmith生成三层架构代码时,你需要创建相应的模板文件。模板语言是CodeSmith的强项,它允许使用C#或其他.NET语言的语法来定义模板。例如,你可以创建一个模板来生成基于Entity Framework的DAL,另一个模板...

    用CodeSmith生成数据库实体类的代码C#

    ### 使用CodeSmith生成数据库实体类的代码(C#) 在软件开发过程中,特别是在涉及数据库操作时,我们经常会遇到需要创建数据库实体类的情况。这些实体类通常用于封装数据表中的记录,并提供对这些记录的操作方法。...

    SqlServer CodeSmith三层架构模版(升级版)

    Sql Server CodeSmith三层架构模板是面向软件开发人员的一款高效工具,尤其适用于那些使用.NET Framework进行企业级应用开发的团队。这个升级版在原有的基础上进行了改进,着重提升了数据库操作的健壮性,通过增加...

    codesmith 代码生成器和中文帮助文档

    - **数据源**:CodeSmith支持多种数据源,包括SQL Server、Oracle、MySQL等,可以读取数据库模式信息用于生成代码。 - **模板类型**:模板可以是类、接口、方法、属性等,也可以是整个数据库访问层或者业务逻辑层...

    codesmith存储过程生成模板

    在Codesmith模板中,我们需要指定表名、字段名及对应的参数,模板引擎会根据这些信息自动生成存储过程的SQL语句。例如,`INSERT INTO 表名 (字段1, 字段2) VALUES (@param1, @param2)`。 "删"操作通常涉及根据某个...

    CodeSmith SQLServer 生成C#三层代码

    数据表的名字中如果存在“_”或空格,会自动清除,每一字段生成一个对应的属性,同样会去除“_”和空格,表中的外键字段除生成一个对应属性外,还会生成一个外键实体属性,如class_id,除生成ClassId属性外,还生成...

    codesmith常用.NET框架生成模版

    通过NHibernate,开发者可以使用面向对象的方式来操作数据库,避免了繁琐的SQL编写。Codesmith的NHibernate模板则能够生成实体类、映射文件以及数据访问层代码,极大地提升了开发速度。 在提供的"nhibernate_...

Global site tag (gtag.js) - Google Analytics