Minwell'Space

最厉害的不是掌握语言的开发人员,而是制定规则的设计人员.

导航

2006年7月23日 #

基于NHibernate的三层结构应用程序开发初步 (转Terrylee)

摘要: 本文并不是去详细的介绍如何使用NHibernate,而是通过一个简单的例子来演示基于NHibernate的三层结构应用程序开发过程。关于NHibernate的有关文档,DDL已经做了汉化,但是由于英文文档自身就不完善,所以汉化后也是不全。菩提树在一篇《NHibernate学习之路》随笔中谈到了学习NHibernate遇到的困难,也希望大家把自己在使用NHibernate中的经验和心得能够共享出来,... 阅读全文

posted @ 2006-07-23 17:07 Minwell 阅读(715) 评论(4) 推荐(0) 编辑

Hibernate快速入门

摘要: 其实Hibernate本身是个独立的框架,它不需要任何web server或application server的支持。然而,大多数的Hibernate入门介绍都加入了很多非Hibernate的东西,比如: Tomcat, Eclipse, Log4J,Struts, XDoclet, 甚至JBoss。这容易让人产生Hibernate复杂难懂的误解,特别是打击了初学者的积极性。 在这篇文章将不... 阅读全文

posted @ 2006-07-23 17:05 Minwell 阅读(489) 评论(1) 推荐(0) 编辑

11。Nullables

摘要: 什么是 Nullables? Nullables 是 NHibernate 的附加软件,它是Donald L Mull Jr. (aka luggage)贡献的.大部分数据库系统允许基本类型(象int或bool)为null。这意味着一个boolean列可能有0,1或者是null值,null和0有不同的含义。但是在.NET 1.x这是不能实现的;一个bool不是true就是false。 Nulla... 阅读全文

posted @ 2006-07-23 15:11 Minwell 阅读(303) 评论(0) 推荐(0) 编辑

10。NHibernate.Tool.hbm2net

摘要: 什么是 NHibernate.Tool.hbm2net? NHibernate.Tool.hbm2net 是 NHibernate 的附加软件.它使得从hbm.xml映射文件产生源代码成为可能。 在 NHibernate.Tasks目录,有一个叫做Hbm2NetTask的工具,你可以用它自动编译程序(使用NAnt)。 阅读全文

posted @ 2006-07-23 15:11 Minwell 阅读(224) 评论(0) 推荐(0) 编辑

9。使用AttributesNHibernate.Mapping.Attributes

摘要: 什么是 NHibernate.Mapping.Attributes? NHibernate.Mapping.Attributes 是 NHibernate 的附加软件,它是Pierre Henri Kuat (aka KPixel)贡献的; 以前的实现者是 John Morris.NHibernate需要映射信息来绑定你的域对象到数据库。通常他们被写在(并且被保存在)在分散的hbm.xml文件里... 阅读全文

posted @ 2006-07-23 15:09 Minwell 阅读(443) 评论(0) 推荐(0) 编辑

8。NHibernate缓存(NHibernate.Caches)

摘要: 什么是 NHibernate.Caches? NHibernate.Caches 是 NHibernate 的附加软件,它是Kevin Williams (aka k-dub)贡献的.缓存是一个保存实体的地点(在首次加载时);一旦进入缓存,能够取得它们,而无需(再次)查询的后台的存储(数据库)。这意味着它们能更快的加载(或重新加载)。 NHibernate session有一个内部的(一级)缓存... 阅读全文

posted @ 2006-07-23 15:08 Minwell 阅读(637) 评论(0) 推荐(0) 编辑

7。示例: Parent/Child

摘要: 刚刚接触NHibernate的人大多是从父子关系(parent / child type relationship)的建模入手的。父子关系的建模有两种方法。比较简便、直观的方法就是在实体类Parent和Child之间建立 的关联关系,从Parent指向Child,对新手来说尤其如此。但还有另一种方法,就是将Child声明为一个 (组合元素)。可以看出在NHibernate中使用一对多关联比comp... 阅读全文

posted @ 2006-07-23 15:08 Minwell 阅读(416) 评论(0) 推荐(0) 编辑

6。关联映射

摘要: 简介 单向关联是最常用的也是最难正确使用的。在本章中会逐个经历规范的案例,从单向映射开始,然后涉及双向的案例。我们会在所有的例子中使用Person和 Address。例子中没有包括命名空间和程序集,我们把关注点放在重要的方面。 我们通过是否使用表连接和多样性(单向或双向)分类关联。 在传统的数据模型中允许为空的外键是不实用的,所以我们的例子中没有使用允许为空的外键。在NHiber... 阅读全文

posted @ 2006-07-23 15:07 Minwell 阅读(226) 评论(0) 推荐(0) 编辑

5。集合类(Collections)映射

摘要: 持久化集合类(Persistent Collections) 这部分不包含大量的.NET代码例子。我们假定你已经了解如何使用.NET自身的集合类框架(.NET's collections framework)和Set集合的概念。 其实如果是这样, 这里就真的没有什么东西需要学习了... 用一句话来做个总结,你就用你已经掌握的知识来使用它们吧。 NHibernate可以持久化以下集合... 阅读全文

posted @ 2006-07-23 15:06 Minwell 阅读(554) 评论(0) 推荐(0) 编辑

4。O/R Mapping基础

摘要: 映射声明(Mapping declaration) 对象和关系数据库之间的映射是用一个XML文档(XML document)来定义的。这个映射文档被设计为易读的,并且可以手工修改。映射语言是以.NET为中心的,意味着映射是按照持久化类的定义来创建的,而非表的定义。 请注意,虽然很多Hibernate用户选择手工定义XML映射文档,也有一些工具来生成映射文档,包括XDoclet,Mi... 阅读全文

posted @ 2006-07-23 15:04 Minwell 阅读(1842) 评论(3) 推荐(0) 编辑

今天上班没带工牌,被老总抓住罚款十元,郁闷啊!!!

摘要: 来上班的路上,把工牌装在口袋里了,进公司的时候忘了带了,早晨开会的时候被老总抓了个正着,让当场交十元钱,当时把钱包放在办公桌上了,身上一分钱也没带,厚着脸皮没有交就坐下了,散会后去财务室缴款,领收据。。。。唉,好郁闷阿!!! 阅读全文

posted @ 2006-07-23 12:49 Minwell 阅读(914) 评论(3) 推荐(0) 编辑

3。持久化类(Persistent Classes)

摘要: 持久化类是应用程序用来解决商业问题的类(比如,在电子交易程序中的Customer和Order)。持久化类,就如同它的名字暗示的,是短暂存在的,它的实例会被持久性保存于数据库中。 如果这些类符合简单的规则,NHibernate能够工作得最好,这些规则就是Plain Old CLR Object (POJO,简单传统CLR对象)编程模型。 POCO 简单示例 用一个类描述一只猫。 ... 阅读全文

posted @ 2006-07-23 12:41 Minwell 阅读(309) 评论(0) 推荐(0) 编辑

2。ISessionFactory配置

摘要: 因为NHibernate被设计为可以在许多不同环境下工作,所以它有很多配置参数。幸运的是,大部分都已经有默认值了。 NHibernate.Test.dll包含了一个示例的配置文件app.config,它演示了一些可变的参数。 可编程配置方式 NHibernate.Cfg.Configuration的一个实例代表了应用程序中所有的.NET类到SQL数据库的映射的集合。Configura... 阅读全文

posted @ 2006-07-23 12:13 Minwell 阅读(305) 评论(0) 推荐(0) 编辑

1。体系结构

摘要: 总览 对NHibernate体系结构的非常高层的概览: 这幅图展示了NHibernate使用数据库和配置文件数据来为应用程序提供持久化服务(和持久化的对象)。 我们试图显示更多NHibernate运行时体系结构的细节。 但挺不幸的,NHibernate是比较灵活的并且提供了好几种不同的运行方式。我们展示一下两种极端情况。轻型体系中,应用程序自己提供ADO.NET连接,并且自行管理事... 阅读全文

posted @ 2006-07-23 12:06 Minwell 阅读(302) 评论(2) 推荐(0) 编辑