一 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. poj3660 floyd

    //Accepted 176 KB 16 ms //一头牛,如果rank是能确定的,那么能打败他的牛的个数和被他打败的牛的个数的总和为n-1 #include <cstdio> #incl ...

  2. CSS实现垂直水平居中

    HTML结构: <div class="wrapper"> <div class="content"></div> < ...

  3. hdu 2079

    ps:昨天刚做了个母函数的,觉得不太熟,今天又是母函数..很好.. 代码: #include "stdio.h" #include "string.h" ]; ...

  4. 下载ADT

    用如下网址,将xx.x.x替换为想要的版本号,通过迅雷等新建下载输入如下网址,再通过离线安装,稳! http://dl.google.com/android/ADT-xx.x.x.zip 来自http ...

  5. Win10/UWP新特性系列—Launcher实现应用间的通信

    UWP中,微软为Windows.System.Launcher启动器新增了很多的功能,以前只能启动App,打开指定扩展名文件,对uri协议的解析,以及当启动的应用没有安装时则会提示前往商店下载等. 如 ...

  6. 用文件模拟CMOS保存数据

    Hi3520D 芯片的内置CMOS最多只有5个字节可以用,但是我需要保存的数据有很多. 其中一个解决办法是:可以把其他需要保存的数据放到一个配置文件中.每次写的时候写到配置文件,用的时候再从配置文件读 ...

  7. thinkphp 内置标签volist 控制换行

    thinkphp 内置标签volist 控制换行 volist标签通常用于查询数据集(select方法)的结果输出,通常模型的select方法返回的结果是一个二维数组,可以直接使用volist标签进行 ...

  8. LeetCode() Ugly Number II 背下来!

    一个别人,非常牛逼的思路,膜拜了!orz!!!! vector <int> results (1,1); int i = 0, j = 0, k = 0; while (results.s ...

  9. 【转】Python 中map、reduce、filter函数

    转自:http://www.blogjava.net/vagasnail/articles/301140.html?opt=admin 介绍下Python 中 map,reduce,和filter 内 ...

  10. Windows 2003上 SaltStack/Salt 和 psutil 可能存在的问题及解决

    今天把salt安装在windows 2003上,发现无法启动,随之而来的是一个有一个的坑,让我们一起逐个排查. 问题一(salt无法启动) salt无法启动,错误结果如图: