牵一发动全身【Nhibernate基本映射】
用牵一发动全身来形容Nhibernate的映射,一点都不夸张。小小的属性的修改,决定了整个Nhibernate的执行动态。以下让我们来详细了解一下,通过回想我们在上篇文章中用到的配置文件,做一个对xml映射文件的理解补充:
实体类的映射文件:
一个实体类相应的是数据库中的一张表;类中的一个属性相应表中的一个字段;操作一个对象相应操作的的是表中的一条记录。
<?xmlversion="1.0" encoding="utf-8" ?>
<hibernate-mappingxmlns="urn:nhibernate-mapping-2.2" namespace="Model"assembly="Model">
<class name="Dog"table="Dog">
<id name="Id">
<column name="DogId"sql-type="char(32)" />
<generator class="assigned"/>
</id>
<property name="Name">
<column name="Name"length="16" />
</property>
<property name="Sex" />
<property name="Weight" />
</class>
</hibernate-mapping>
<class></class>标签是定义一个持久化类的。
"class name="Dog"" 持久化类的类名,这里能够是类的全名。
table="Dog" 相应的数据库表名。
<id><id>标签定义了该属性到数据库表主键字段的映射。
property name="Id" 标识属性的名字。
sql-type="char(32)" NHibernate类型的名字
column name="DogId" 主键字段的名字。
<property></property>标签是类定义了一个持久化类的属性。
name="propertyName"
属性名
column="column_name" 相应的数据库字段名。
type="typename" NHibernate类型的名字。
Nhibernate运作方式的配置文件,主要是配置session工厂:
<strong><</strong>?xmlversion="1.0" encoding="utf-8" ?> <hibernate-configurationxmlns="urn:nhibernate-configuration-2.2"> <session-factory> <property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property> <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property> <property name="connection.connection_string"> Server=(local);uid=sa;pwd=123456;database=quickstart //将该属性的填写改成你自己的数据库连接符 </property> <property name="hbm2ddl.auto">update</property> <mapping assembly="Model"/> </session-factory> </hibernate-configuration>
<property name="dialect">
配置
数据库方言
,针对不同的数据有不同配置,当前配置的是Sqlsever的方言
<property name="connection.provider">
配置
连接池
<property name="connection.connection_string">
属性值大家看着肯定熟悉,对,是配置连接数据库的字符串
<property name="hbm2ddl.auto">
该属性的配置,决定Nhibernate的执行,是否会自己主动生成数据库表
<mapping assembly="Model"/>
这里的属性
配置
要载入的实体类的配置文件所在的程序集
每一个属性的值,都还有非常多的不同配置,自己可通过查阅API手冊,具体地去学习,这里仅仅做简单的分享。
总结:配置文件给我们的程序带来了非常大的优点,从抽象工厂,到Nhibernate无处不彰显着它给程序带来的灵活性。配置文件,一定会大行其道吧!
牵一发动全身【Nhibernate基本映射】的更多相关文章
- 那些年被我坑过的Python——牵一发动全身 第十一章MySQL、ORM
#!/usr/bin/env python # -*- coding:utf-8 -*- __Author__ = "Zhang Xuyao" from sqlalchemy im ...
- NHibernate之映射文件配置说明
NHibernate之映射文件配置说明 1. hibernate-mapping 这个元素包括以下可选的属性.schema属性,指明了这个映射所引用的表所在的schema名称.假若指定了这个属性, 表 ...
- NHibernate 继承映射(第十六篇)
在NHibernate的映射中,关于继承的映射策略有3种方式 单表继承 类表继承 具体表继承 另外还有一种比较特别的多态映射 隐式多态 下面分别来阐述NHibernate继承映射的各种策略要点. 一. ...
- NHibernate 集合映射基础(第四篇) - 一对一、 一对多、多对多小示例
映射文件,用于告诉NHibernate数据库里的表.列于.Net程序中的类的关系.因此映射文件的配置非常重要. 一.一对一 NHibernate一对一关系的配置方式使用<one-to-one&g ...
- DDD中的值对象如何用NHibernate进行映射
原文:DDD中的值对象如何用NHibernate进行映射 <component/>是NHibernate中一个有趣的特性,即是用来映射DDD(Data-Display-Debuger)概念 ...
- 5、ASP.NET MVC入门到精通——NHibernate代码映射
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 上一篇NHibernate学习笔记—使用 NHibernate构建一个ASP.NET MVC应用程序 使用的是xml进行orm映射,那么这一 ...
- [NHibernate]关联映射
系列文章 [Nhibernate]体系结构 [NHibernate]ISessionFactory配置 [NHibernate]持久化类(Persistent Classes) [NHibernate ...
- [NHibernate]Nhibernate如何映射sqlserver中image字段
概述 有这样一个需求需要管理企业内网的信息,包括图标和链接.考虑到图标也不是很大所以就将图片直接保存在数据库中了. 但是用到Nhibernate,如何映射呢? Table 5.5. Large Obj ...
- NHibernate系列文章六:NHibernate数据类型映射
摘要 NHibernate支持所有的数据库数据类型. 以SQL Server数据库为例,下表是NHibernate支持的SQL Server数据库最常见的数据类型对照表. 第一列是NHibernate ...
随机推荐
- H Language Blueprint
H Language Blueprint I will design the H language in the very-soon future, it will be like: 1- a scr ...
- hdu1171 Big Event in HDU 01-背包
转载请注明出处:http://blog.csdn.net/u012860063 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1171 Problem ...
- Codeforces 466 E. Information Graph
并查集.... E. Information Graph time limit per test 1 second memory limit per test 512 megabytes input ...
- VS2008快捷键_大全
Ctrl+B,C: 清除全部标签 Ctrl+I: 渐进式搜索 Ctrl+Shift+I: 反向渐进式搜索 Ctrl+F: 查找 Ctrl+Shift+F: 在文件中查找 F3: 查找下一个 Shift ...
- linux修改系统时间
当你把linux还原到某个点的时候,vmware帮不了你把系统时间也给重设了.所以这时候就要手工来搞.关于咋设linux时间.网上介绍也很多,但是都是抄来抄去的东西.那怎么才能高效快捷的设置系统时间呢 ...
- VML :Vector Markup Language
在以前老是浏览器IE<9在不支持SVG情况下,IE一般通过VML来绘制图形,图片,文字等 步骤: 必须在头部添加 <HTML xmlns:v="urn:schemas-micro ...
- ASP.NET 后台下载文件方法
void DownLoadFile(string fileName) { string filePath = Server.MapPath(fileName);//路径 //以字符流的形式下载文件 F ...
- 初学者的jquery登录注册和弹窗设计
初次学习前端,接触到jquery,写了一个简单的注册账号, 并判断输入内容是否符合命名规则的页面效果如下: 首先创建html,js文件 在做页面布局之前还要连接js文件,然后开始布局自己的页面效果 i ...
- Lucene学习总结之六:Lucene打分公式的数学推导
在进行Lucene的搜索过程解析之前,有必要单独的一张把Lucene score公式的推导,各部分的意义阐述一下.因为Lucene的搜索过程,很重要的一个步骤就是逐步的计算各部分的分数. Lucene ...
- http://www.cnblogs.com/Joyes1989/archive/2013/06/28/3161739.html centos 输入法安装切换
昨天装了一个centos 安装输入法的时候 让我有点纠结 全英文的 读不懂