一 CodeSmith简介

本文以表自动生成NHibernate的映射文件和映射类的实例来说明一下本软件的使用方法。

CodeSmith是一种基于模板的代码生成工具,其使用类似于ASP.NET的语法来生成任意类型的代码和文件。使用 CodeSmith,可以生成包括简单的强类型集合和完整应用程序在内的任何东西。(弱类型-没有明显的类型,会随着环境的不同自动变换类型;强类型-在声明时规定其数据类型,保证类的安全,虽然系统也有一定的默认转换,但是没有弱类型那么随便)

当您生成应用程序时,您经常需要重复完成某些特定的任务,例如编写数据访问代码或者生成自定义集合。CodeSmith 在这些时候特别有用,因为您可以编写模板自动完成这些任务,从而不仅提高您的工作效率,而且能够自动完成那些最为乏味的任务。CodeSmith 附带了许多模板,包括对应于所有 .NET 集合类型的模板以及用于生成存储过程的模板,但该工具的真正威力在于能够创建自定义模板。

二 软件下载

1、下载CodeSmith代码辅助生成器

本文使用CodeSmith6.5.0完美破解版,并安装。

2、下载NHibernate template的一个组件

因为因为我要生成的是NHibernate的映射文件和类,但本软件没有自带,因此需要下载nhibernate_template的一个组件,如下图所示:

(三)操作过程

0、利用SQLServer2008建立NHibernate数据库,表Person,结构如下:

1、利用CodeSmith生成NHibernate的映射文件和映射类

单击NHibernate.cst文件,如图所示:

OutputDireatory:文件输出路径

SourceDatabase:需要读取的数据库文件

ForceId:True强制数据库NHibernate中的所有表都需要有主键。

Namespace:命名空间

RemoveTablePrefix:默认

选择相应的数据库-Add

配置数据库连接信息后,进行测试TestConnection:

因为我们操作的是SQLServer2008数据库,所以这里选择SqlSchemaProver。如果你使用的是其它数据库,可以自行选择。

可以看到自动生成链接字符串

最后单击Generate按钮,会自动生成映射文件和映射类,如图所示:

3、分析Person.hbm.xml

通过查看自动生成的映射文件Person.hbm.xml,来看一下:对象是如何和表建议映射关系的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0">
  <!--对象Person和表t_Person建立映射关系-->
    <class name="Test.Model.Person, Test.Model" table="t_Person">
    <!--对象Person的Id属性和表t_Person中字段t_Id建立映射关系-->
        <id name="Id" type="Int32" unsaved-value="null">
            <column name="t_Id" length="4" sql-type="int" not-null="true" unique="true"/>
            <generator class="native" />
        </id>
    <!--对象Person的Name属性和表t_Person中字段t_Name建立映射关系-->
        <property name="Name" type="String">
            <column name="t_Name" length="50" sql-type="varchar" not-null="false"/>
        </property>
    </class>
</hibernate-mapping><span style="font-family:FangSong_GB2312;font-size:18px;">
</span>

这就是由表自动生成NHibernate的映射文件和映射类(就是我们曾手写的Entity)的大致的使用方法,是不是很简单呀?!省去了很多人工的工作量。

接下来的文章,将会在NHibernate的使用教程的Demo中用到生成的Person映射文件和映射类,敬请期待!

使用CodeSmith快速生成映射文件和映射类的更多相关文章

  1. hibernate 的映射文件快速生成:使用CodeSmith快速生成映射文件和映射类

    一 CodeSmith简介 本文以表自动生成NHibernate的映射文件和映射类的实例来说明一下本软件的使用方法. CodeSmith是一种基于模板的代码生成工具,其使用类似于ASP.NET的语法来 ...

  2. 生成 hibernate 映射文件和实体类

    创建web工程,使用Hibernate的时候,在工程里一个一个创建实体类太麻烦,浪费时间,现在教大家如何用MyEclipse自动生成Hibernate映射文件及实体类 方法/步骤   创建数据库,创建 ...

  3. hibernate之映射文件VS映射注解

    前言 对于java开发者而言,注解应该不是一个陌生的概念,早在JavaSE阶段,例如@Override标记重写父类方法或实现接口方法,@Test标记单元测试方法,所以我们可以简单地把它理解为一种有特殊 ...

  4. 使用dd命令快速生成大文件或者小文件的方法

    使用dd命令快速生成大文件或者小文件的方法     转载请说明出处:http://blog.csdn.net/cywosp/article/details/9674757     在程序的测试中有些场 ...

  5. 使用dd命令快速生成大文件或者小文件

    使用dd命令快速生成大文件或者小文件 需求场景: 在程序的测试中有些场景需要大量的小文件或者几个比较大的文件,而在我们的文件系统里一时无法找到那么多或者那么大的文件,此时linux的dd命令就能快速的 ...

  6. 用MyEclipse自动生成hibernate映射文件和实体类

    创建数据库,创建相应的表 点击图标,选择MyEclipse Datebase Explorer 右击空白区域,选择new菜单,根据提示创建数据库连接,创建好后会显示你所创建的连接名,如图mysqldb ...

  7. mybatis的基本配置:实体类、配置文件、映射文件、工具类 、mapper接口

    搭建项目 一:lib(关于框架的jar包和数据库驱动的jar包) 1,第一步:先把mybatis的核心类库放进lib里

  8. mybatis中映射文件和实体类的关联性

    mybatis的映射文件写法多种多样,不同的写法和用法,在实际开发过程中所消耗的开发时间.维护时间有很大差别,今天我就把我认为比较简单的一种映射文件写法记录下来,供大家修改建议,争取找到一个最优写法~ ...

  9. mybatis 接口中定义方法、映射文件、实体类之间的关系?

    一.定义实体类 ,注意需求 是一对多还是多对一.  这里用员工和部门  多对一的关系举例. package com.zs.entity; /* * /* * 多对一? * 多个员工 对应一个部门 一个 ...

随机推荐

  1. css3简单介绍

    关于css3我先介绍几个简单的选择器: 先进行设置: 字符串匹配属性选择器: E[alt^="a"]  选择属性中以a开头的元素: E[alt$="a"]  选 ...

  2. 在VS下使用 GitFlow管理项目开发

    在VS下使用 GitFlow管理项目开发 1.右键将你的解决方案添加到源代码管理,如果你的VS没有安装git,会提示安装,安装完成之后,在团队资源管理可以看到如下界面 (图一) 2.安装gitflow ...

  3. HDU1016 dfs

    刷回溯的时候发现我对DFS思路很不清晰,总是做着做着就乱了,刷个水题找找思路. 题意:经典DFS,找出所有的能让1~n的数形成素数环的序列(相邻相加为素数): #include <iostrea ...

  4. Unity Sprite转Prefab

    新项目使用Unity5.X,遇到了一些问题,其中就有Sprite的管理更新问题,查了一些资料,Mono推荐的是转为Prefab处理. 看了一些国外同行的处理方法,分析了一个编辑器插件脚本.学到了一些技 ...

  5. 关于EEG参考电极

    今天搞ADS1299,里面的BIAS偏置运放原来是设置参考电极的. The input multiplexer has EEG-specific functions for the bias driv ...

  6. Centos7.2 Systemd 方式编译 Mysql5.7.11

    导读 MySQL 5.7 版本的发布,也就是说从现在开始5.7已经可以在生产环境中使用,有任何问题官方都将立刻修复. MySQL 5.7主要特性: 原生支持Systemd 更好的性能:对于多核CPU. ...

  7. CheckBoxList 用法

    <asp:CheckBoxList ID="cblqf" ForeColor="#4d6fc8" runat="server" Rep ...

  8. UDP信息接收与发送

    转载:http://www.cnblogs.com/sunev/archive/2012/08/08/2627247.html 一.摘要 总结基于C#的UDP协议的同步通信. 二.实验平台 Visua ...

  9. 渴切API参考手册

    渴切:是国内优秀的开源css框架. 渴切是一个开源中文 (X)HTML/CSS 框架 ,它的目的是减少你的css开发时间.它提供一个可靠的css基础去创建你的项目,能够用于网站的快速设计,通过重设和重 ...

  10. 修改使用phpstorm创建的模板的默认注释