NHiernate相信大家都非常熟悉,可能没用过,但是至少大家都听说过。这系列的文章也层出不穷,也就是我们经常所说的orm的应用,也正是面向对象开发的表现。NHibernate集成了java的Hibernate优点而又体现了.net的长处可以说是宠于一身,那么就更加激起了我对NHibernate的学习的渴望,想早点揭开它的面纱,于是今天发了一天的时间到网上到处找资料了解它,学习它看它到底有多神秘。哎,废话,感慨也不想说了,就开始进入学习之旅吧,下面就拿我写的一个小例子来讲解。
先看网上关于NHibernate的说法:
在今日的企业环境中,把面向对象的软件和关系数据库一起使用可能是相当麻烦、浪费时间的。NHibernate是一个面向.Net环境的对象/关系数据库映射工具。对象/关系数据库映射(object/relational mapping (ORM))这个术语表示一种技术,用来把对象模型表示的对象映射到基于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,只不过在这里说的名称不一样,不过写法也有点区别)