文章标签 ‘nhibernate’

数据库的最基本操作就是增删改查,今天介绍NHibernate的增删改操作,因为NHibernate查询功能非常强大,放在后面介绍。 1.插入一条数据,即新增一个持久化对象 代码: 运行结果: 数据库: 2.修改一条数据,即修改一个持久化对象 代码: 运行结果: 数据库: 3.删除一条数据,即移除一个持久化对象 代码: 运行结果: 数据库: 总结,NHibernate给我们提供了,非常方便的操作持久化对象的方法,这里只列出了,最基本的操作,NHibernate批量删除和更新由于要使用到HQL查询语言,我们后面在做介绍。

2010年1月25日15:09 1 条评论

上次,我们讲了NHibernate的概述,今天我们来做一个NHibernate实例,让大家体会一下,NHibernate是如何工作的。 首先,我们从NHibernate官网下载最新的nhibernate类库,创建一个示例数据库作为数据源。我们这里使用了SqlServer2008的数据库,用SqlServer2000也可以(NHibernate最大的特点之一就是支持现在流行的几乎所有的数据库),我们这里数据库名称是NHDemo,新建一个Person表,字段结构如下: 接下来,我们建立一个控制台项目,和一个类库项目,控制台项目作为输出结果。 项目文件建立好了,我们把需要用到的dll拷贝到dlls目录中。Iesi.Collections.dll,log4net.dll,NHibernate.dll可从压缩包的Required_Bins目录中找到,其他dll可从Required_For_LazyLoading\Castle目录找到。接下来,我们创建持久化对象,也就是数据库所映射的实体类。名称是:Person.cs 接下来,我们创建这个实体类的关系映射文件。NHibernate就是通过这个文件找到我们的持久化对象和数据库表中的对应关系的。(我们要为Microsoft Visual Studio 2008添加编写NHibernate配置文件智能提示的功能。只要在下载的NHibernate文件包里找到configuration.xsd和nhibernate-mapping.xsd两个文件并复制到X:\Program Files\Microsoft Visual Studio 9.0\Xml\Schemas目录即可)名称是Person.hbm.xml 注意,此时映射文件需要修改属性,将“生成操作”改为“嵌入资源”。 下面我们编写NHibernateHelper,首先,我们要从ISessionFactory中获取一个ISession(NHibernate的工作单元)。ISessionFactory可以创建并打开新的Session。一个Session代表一个单线程的单元操作。 ISessionFactory是线程安全的,很多线程可以同时访问它。ISession不是线程安全的,它代表与数据库之间的一次操作。ISession通过ISessionFactory打开,在所有的工作完成后,需要关闭。 ISessionFactory通常是个线程安全的全局对象,只需要被实例化一次。我们可以使用单例(Singleton)模式在程序中创建ISessionFactory。这个实例我编写了一个辅助类NHibernateHelper 用于创建ISessionFactory并配置ISessionFactory和打开一个新的Session单线程的方法,之后在每个数据操作类可以使用这个辅助类创建ISession 。代码如下 接下来,我们为控制台添加NHibernate配置信息,加入App.config应用程序配置文件,代码如下 从字面上可以看出dialect是数据库方言,connection.provider是数据库连接驱动,connection.connection_string是数据库连接字符串,其中<mapping assembly=”NHDemoDAL” />,NHDemoDAL即为我们刚才建立的NHibernate项目文件。我们添加代码,来享受NHibernate带给我们的一切吧。 输出结果: 查看数据库: 由于采用了事务处理机制,每次修改数据后,都需要提交一个事物来完成操作。至此,我们的第一个NHibernate实例已经完成,是不是很简单呢? 源码下载

2010年1月21日16:13 2 条评论

NHibernate是什么呢?简单的说就是在.Net环境下的ORM(Object Relational Mapping – 对象关系映射)框架,是把对象模型表示的对象映射到基于SQL 的关系模型数据结构中去。这样做的好处是什么呢?节省我们的开发成本,我们不需要处理大量的SQL语句,直接可以对表映射对象进行操作,完成持久化操作。了解Java的开发人员都知道Hibernate是一个很著名的ORM框架,NHibernate就是从Java平台移植过来的。 NHibernate底层架构图,从这张图不难看出,NHibernate就是ADO.Net及.Net下不同数据访问的封装,借助.Net原生的数据访问对象,完成数据访问的。 准备工作 下载NHibernate类库,文档。 官方网站:http://www.nhibernate.org 本系列文章将用NHibernate v.2.1.2.GA做实例

2010年1月16日15:55 没有评论