hibernate 的映射文件快速生成:使用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映射文件和映射类,敬请期待!
hibernate 的映射文件快速生成:使用CodeSmith快速生成映射文件和映射类的更多相关文章
- 使用CodeSmith快速生成映射文件和映射类
一 CodeSmith简介 本文以表自动生成NHibernate的映射文件和映射类的实例来说明一下本软件的使用方法. CodeSmith是一种基于模板的代码生成工具,其使用类似于ASP.NET的语法来 ...
- Hibernate基于注解方式配置来实现实体和数据库之间存在某种映射关系
实体和数据库之间存在某种映射关系,hibernate根据这种映射关系完成数据的存取.在程序中这种映射关系由映射文件(*.hbm.xml)或者java注解(@)定义. 本文以java注解的形式总结映射关 ...
- 详解:基于WEB API实现批量文件由一个服务器同步快速传输到其它多个服务器功能
文件同步传输工具比较多,传输的方式也比较多,比如:FTP.共享.HTTP等,我这里要讲的就是基于HTTP协议的WEB API实现批量文件由一个服务器同步快速传输到其它多个服务器这样的一个工具(简称:一 ...
- 黄聪:如何使用CodeSmith批量生成代码(转:http://www.cnblogs.com/huangcong/archive/2010/06/14/1758201.html)
先看看CodeSmith的工作原理: 简单的说:CodeSmith首先会去数据库获取数据库的结构,如各个表的名称,表的字段,表间的关系等等,之后再根据用户自定义好的模板文件,用数据库结构中的关键字替代 ...
- jmeter5.0生成html报告 快速入门
JMeter性能测试5.0时代之-多维度的图形化HTML报告 快速入门 1.确认基本配置 在jmeter.properties或者user.properties确认如下配置项: jmeter.save ...
- 如何使用CodeSmith批量生成代码(原创系列教程)
在上一篇我们已经用PowerDesigner创建好了需要的测试数据库,下面就可以开始用它完成批量代码生成的工作啦. 下面我会一步步的解释如何用CodeSmith实现预期的结果的,事先声明一下,在此只做 ...
- 如何快速编写和调试 Emit 生成 IL 的代码
.NET Core/.NET Framework 的 System.Reflection.Emit 命名空间为我们提供了动态生成 IL 代码的能力.利用这项能力,我们能够在运行时生成一段代码/一个方法 ...
- [转]黄聪:如何使用CodeSmith批量生成代码
本文转自:http://www.cnblogs.com/huangcong/archive/2010/06/14/1758201.html 在上一篇我们已经用PowerDesigner创建好了需要的测 ...
- 使用MybatisGenerator自动生成Model,Mapping和Mapper文件
Mybatis和Hibernate都是持久层框架,MyBatis出现的比Hibernate晚,这两种框架我都用过,对于二者的优势我的感触不深,个人感觉MyBatis自动生成model,Mapping, ...
随机推荐
- 本地用户 vsftpd 配置文件
# 禁止匿名用户anonymous登录 anonymous_enable=NO # 允许本地用户登录 local_enable=YES local_root=/data/wwwroot/ # 让登录的 ...
- Mysql学习总结(11)——MySql存储过程与函数
摘要:存储过程和函数是在数据库中定义一些SQL语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL语句.存储过程和函数可以避免开发人员重复的编写相同的SQL语句.而且,存储过程和函数是在 ...
- ORA-06575: 程序包或函数 NO_VM_DROP_PROC 处于无效状态
SQL> drop user aaa ; drop user aaa ORA-00604: 递归 SQL 级别 1 出现错误 ORA-06575: 程序包或函数 NO_VM_DROP_P ...
- easyUI Tab href,content差别
easyUI的Tab面板是继承了panel Tab中js的两种使用方法: 说明:jsp主页面加入一个id为tab的div,要引入easyUI的相关js.css <div data-option ...
- The ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions, unless TOP or FOR XML is also specified.
https://stackoverflow.com/questions/30045871/sorting-the-view-based-on-frequency-in-sql-server Just ...
- android 图片特效处理之锐化效果
这篇将讲到图片特效处理的锐化效果.跟前面一样是对像素点进行处理,算法是通用的. 算法原理: 一.简单算法:分别获取当前像素点和八个周围像素点的RGB值,先求出当前像素点的RGB值与八个像素点RGB值的 ...
- [ Java ] [ Eclipse ] 加速 Eclipse 載入速度-轉載
加速 Eclipse 載入速度-轉載 https://read01.com/NJjNOB.html
- Redis学习笔记--Redis客户端(三)
1.Redis客户端 1.1 Redis自带的客户端 (1)启动 启动客户端命令:[root@kwredis bin]# ./redis-cli -h 127.0.0.1 -p 6379 -h:指定访 ...
- css3+jq--小箭头旋转180度案例
html: <aside class="tea_getBtn"> <div class="w"> <span class=&quo ...
- css3--根据数据加载显示的一个动画
css: .circle { width: 200px; height: 200px; position: absolute; border-radius: 50%; background: #0cc ...








