NHibernate入门初学者-先睹为快

来源:互联网 发布:mac系统照片分类 编辑:程序博客网 时间:2024/04/28 23:54

  NHiernate相信大家都非常熟悉,可能没用过,但是至少大家都听说过。这系列的文章也层出不穷,也就是我们经常所说的orm的应用,也正是面向对象开发的表现。NHibernate集成了java的Hibernate优点而又体现了.net的长处可以说是宠于一身,那么就更加激起了我对NHibernate的学习的渴望,想早点揭开它的面纱,于是今天发了一天的时间到网上到处找资料了解它,学习它看它到底有多神秘。哎,废话,感慨也不想说了,就开始进入学习之旅吧,下面就拿我写的一个小例子来讲解。

先看网上关于NHibernate的说法:

  在今日的企业环境中,把面向对象的软件和关系数据库一起使用可能是相当麻烦、浪费时间的。NHibernate是一个面向.Net环境的对象/关系数据库映射工具。对象/关系数据库映射(object/relational mapping (ORM))这个术语表示一种技术,用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中去。
NHibernate除了能将一张表映射为一个对象,还可以将表间关系变为对象的属性。例如学生和课程间的多对多关系就可以转化为学生类中的一个课程集合的属性。由此可见,NHibernate不仅仅管理.Net类到数据库表的映射,还提供数据查询和获取数据的方法。因此采用NHibernate,可以大幅度减少开发时人工使用SQL处理数据的时间。

1.首先我创建了一个数据库,数据库以sql server2005为例

 create table Student
(
 id int primary key identity(1,1),
 userName varchar(30),
 userPass varchar(30),
 age varchar(30)
)

2.打开vs2008建立如下项目,建立项目的步骤我就不在表述 了

 

3.下载Nhibernate包,加载一系列dll文件到web里bin文件里面

 dll文件包括:NHibernate.dll/NHibernate.ByteCode.Castle.dll/Iesi.Collections/Castle.Core/Antlr3.Runtime

4.在model项目里创建实体类以及实体类的映像文件

注意:这里的熟悉要用virtual修饰,具体的什么原因,由于字数太多我也不描述了,大家可以参考官方Nhibernate的讲解

接下来大家看看这个实体类的映像文件Student.hbm.xml

需要指出的就是:class name=完整类名称,命名空间   table=表名称  assigned表示为Nhibernate结构的自动增长熟悉

 property表示字段的名称,以及类型

映像文件创建好后要修改文件的操作为“嵌入式资源”,默认为内容,修改方法右击该文件选择属性修改如下:

5.创建一个Nhibernate的SessionFactorys(相当于一个数据),在利用它返回一个ISeesion来进行增删改查等操作,Isession称为NHibernate的一个工作单元

 

6在web目录下或者bin目录下添加hibernate.cfg.xml文件用于配置数据库的一些操作

注意:这里我配置的是sql server2005的不同的数据库有不同的配置方法,assembly:指实体的命名空间名称

7..在前台就开始调用实现我们想要的增,查等操作

根据以上的步骤我总结一下:

1.为系统引入NHibernate的库,并且配置NHibernate;
2.新建一个将要持久化.Net对象的表;
3.构建一个需要被持久化的.Net类;

4.构建一个可以让NHibernate知道如何完成ORM映射的XML文件;
5.使用NHibernate的API来编程或者Hql来编程(hql就是相当于sql,只不过在这里说的名称不一样,不过写法也有点区别)

 

 

原创粉丝点击