使用CodeSmith快速生成映射文件和映射类
一 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快速生成映射文件和映射类的更多相关文章
- hibernate 的映射文件快速生成:使用CodeSmith快速生成映射文件和映射类
一 CodeSmith简介 本文以表自动生成NHibernate的映射文件和映射类的实例来说明一下本软件的使用方法. CodeSmith是一种基于模板的代码生成工具,其使用类似于ASP.NET的语法来 ...
- 生成 hibernate 映射文件和实体类
创建web工程,使用Hibernate的时候,在工程里一个一个创建实体类太麻烦,浪费时间,现在教大家如何用MyEclipse自动生成Hibernate映射文件及实体类 方法/步骤 创建数据库,创建 ...
- hibernate之映射文件VS映射注解
前言 对于java开发者而言,注解应该不是一个陌生的概念,早在JavaSE阶段,例如@Override标记重写父类方法或实现接口方法,@Test标记单元测试方法,所以我们可以简单地把它理解为一种有特殊 ...
- 使用dd命令快速生成大文件或者小文件的方法
使用dd命令快速生成大文件或者小文件的方法 转载请说明出处:http://blog.csdn.net/cywosp/article/details/9674757 在程序的测试中有些场 ...
- 使用dd命令快速生成大文件或者小文件
使用dd命令快速生成大文件或者小文件 需求场景: 在程序的测试中有些场景需要大量的小文件或者几个比较大的文件,而在我们的文件系统里一时无法找到那么多或者那么大的文件,此时linux的dd命令就能快速的 ...
- 用MyEclipse自动生成hibernate映射文件和实体类
创建数据库,创建相应的表 点击图标,选择MyEclipse Datebase Explorer 右击空白区域,选择new菜单,根据提示创建数据库连接,创建好后会显示你所创建的连接名,如图mysqldb ...
- mybatis的基本配置:实体类、配置文件、映射文件、工具类 、mapper接口
搭建项目 一:lib(关于框架的jar包和数据库驱动的jar包) 1,第一步:先把mybatis的核心类库放进lib里
- mybatis中映射文件和实体类的关联性
mybatis的映射文件写法多种多样,不同的写法和用法,在实际开发过程中所消耗的开发时间.维护时间有很大差别,今天我就把我认为比较简单的一种映射文件写法记录下来,供大家修改建议,争取找到一个最优写法~ ...
- mybatis 接口中定义方法、映射文件、实体类之间的关系?
一.定义实体类 ,注意需求 是一对多还是多对一. 这里用员工和部门 多对一的关系举例. package com.zs.entity; /* * /* * 多对一? * 多个员工 对应一个部门 一个 ...
随机推荐
- Asp.net中Json的序列化和反序列化(二)
三.JSON序列化和反序列化日期时间的处理 JSON格式不直接支持日期和时间.DateTime值值显示为“/Date(700000+0500)/”形式的JSON字符串,其中第一个数字(在提供的示例中 ...
- iOS view 颜色渐变
//渐变色过渡自然 CAGradientLayer *layer = [CAGradientLayer layer]; layer.frame = CGRectMake(0, 0, curW-10,4 ...
- linux grep 命令
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达 ...
- C++静态成员函数小结(转)
类中的静态成员真是个让人爱恨交加的特性.我决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不在被动. 静态类成员包括静态数据成员和静态函数成员两部分. 一 静态数据成员: 类体中 ...
- Oracle 查看表空间的大小及使用情况sql语句
--1.查看表空间的名称及大小 )), ) ts_size FROM dba_tablespaces t, dba_data_files d WHERE t.tablespace_name = d.t ...
- C++ 文件读取
#include <iostream> #include <fstream> #include <string> using namespace std; int ...
- ubuntu 上安装mysql
打开"终端窗口",输入"sudo apt-get install mysql-server mysql-client"-->回车-->输入" ...
- [原创]cocos2d-x研习录-第二阶 概念类之摄相机类(CCCamera)
在Cocos2D-x中,每个CCNode都拥有一个摄像机类CCCamera.只有通过CCCamera,CCNode才会被渲染出来.当CCNode发生缩放.旋转和位置变化时,都需要覆盖CCCamera, ...
- Mac下Nginx环境配置
环境信息: Mac OS X 10.11.1 Homebrew 0.9.5 正文 一.安装 Nginx 终端执行: brew search nginx brew install nginx 当前版本 ...
- powerdsigner Association Multiplicity
这一篇來告诉一个不容易分辨的关系图式:Association(结合)的各种類型,除了了解它的涵义 外,也让各位可以看图說故事,知道它背后所要表达的意义. Association结合 Associati ...








