请注明转载地址:http://www.cnblogs.com/arhat

第二章 环境搭建

在上一章中,我们知道了NHibernate是用来干什么的了,那么今天在本章中,我们开始搭建NHibernate的运行环境,在讲述NHibernate的时候,我们采用C#控制台应用程序来讲解,等到后面的时候,我们使用ASP.NET MVC和NHibernate的结合来开发项目。在以前,老魏写过一个《ASP.NET MVC NHibernate 整合》,这篇文章老魏写的有问题,有其事Nhibernate的GetCurrentSession的问题,那么老魏在讲解NHibernate的时候会专门来讲解这个只是,同时更改一下《ASP.NET MVC NHibernate 整合》的内容。

首先我们得进入到NHibernate的官方网站下载NHibernate的必要文件,地址:http://nhforge.org/大家可以自行下载。这里呢,老魏使用的是NHibernate-3.2.0,数据库使用的是MySQL。

首先我们建立一个空的解决方案“NHibernateStudy”,在解决方案中我们创建两个项目,一个是c#控制台应用程序NHibernateTest,另外一个是C#类库DAL。

在NHibernateTest中,我们添加一个应用程序配置文件App.config。顺便添加NHibernateTest对DAL的应用。我们在DAL中添加NHibernate的两个必要dll文件“Iesi.Collections.dll”,“NHibernate.dll”文件,并生成以下解决方案。

更改App.config文件,内容如下:

<configSections>

<!--声明NHibernate的配置节点-->

        <section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" />

    </configSections>

    <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">

<!--SessionFactory的配置-->

        <session-factory>

<!--方言用的是Mysql-->

            <property name="dialect">NHibernate.Dialect.MySQL5Dialect</property>

<!--是否显示sql语句-->

            <property name="show_sql">true</property>
<!--使用NHibernate提供的MySql驱动--> <property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property> <!--链接字符串--> <property name="connection.connection_string">persistsecurityinfo=True;server=127.0.0.1;user id=root;password=symjie;database=school</property> </session-factory> </hibernate-configuration>

其中在这个配置文件中出现了一个非常重要的SessionFactory的配置,这个配置对应着一个对象”SessionFactory”,这个对象是会话工厂,提供一个有效的会话链接。这一点在后面的代码中,老魏讲详细的说明。

然后我们在DAL项目中,创建一个NHibernateHelper.cs文件,内容如下:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using NHibernate.Cfg;

using NHibernate;

namespace DAL

{

public class NHibernateHelper

    {

//会话工厂

public static ISessionFactory factory = null;

static NHibernateHelper() 

        {

//读取配置文件,根据配置文件创建一个会话工厂,而这个就是从<session-factory>节点中读取的信息

            factory = new Configuration().Configure().BuildSessionFactory();

        }

//定义一个打开数据库链接的方法

public static ISession OpenSession()

        {

//通过工厂打开一个Session(会话)

return factory.OpenSession();

        }

    }

}

在这个类中,我们出现了两个接口,ISessionFactory和ISession,其中ISessionFactory是一个会话工厂,用于提供数据库链接会话的创建。ISession是表示一个数据库链接的会话,这里我们可以认为是一个数据库链接相当于ADO.NET 中的Connection,但是实际上ISession的功能比Connection要强大的多。

我们在DAL中,创建一个测试文件“Test.cs”内容如下:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using NHibernate;

namespace DAL

{

public class Test

    {

public void TestConnection() 

        {

ISession session = NHibernateHelper.OpenSession();

using (session)

            {

Console.WriteLine("是否已经打开数据库链接?" + session.IsOpen);

            }

Console.WriteLine("数据库是否已经关闭链接?" + session.IsOpen);

        }

    }

}

然后更改一下NHibernateTest项目中的Program.cs文件,在主函数中创建Test类,并调用Test类的TestConnection方法来测试一下数据库是否打开。

static void Main(string[] args)

        {

            DAL.Test test = new DAL.Test();

            test.TestConnection();

        }

运行一下程序,看看结果。

看来,我们已经成功的配置了NHibernate的测试项目,并成功的打开数据库和关闭数据库了。

一步步学习NHibernate(2)——配置NHibernate的环境的更多相关文章

  1. AgileEAS.NET SOA 中间件平台5.2版本下载、配置学习(三):配置ActiveXForm运行环境

    一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...

  2. Raspberry树莓派学习笔记2—配置RobotFramework自动化测试环境

    一般RobotFramework都是安装在Windows/Linux的PC机上,这里将简单介绍在树莓派硬件平台上配置RobotFramework的开发和运行环境. 树莓派上配置了自动化测试软件,可以考 ...

  3. [NHibernate]基本配置与测试

    目录 写在前面 nhibernate文档 搭建项目 映射文件 持久化类 辅助类 数据库设计与连接配置 测试 总结 写在前面 一年前刚来这家公司,发现项目中使用的ORM是Nhibernate,这个之前确 ...

  4. [NHibernate]缓存(NHibernate.Caches)

    系列文章 [Nhibernate]体系结构 [NHibernate]ISessionFactory配置 [NHibernate]持久化类(Persistent Classes) [NHibernate ...

  5. centos从头学习配置web服务器环境

    为了学习linux下配置web服务器环境,于是安装了vmware,准备在虚拟机里面学习web服务器的搭建! 首先是在虚拟机里安装centos,我选择的是32位的centos6.6版本,因为新版本7据说 ...

  6. 一步步学习NHibernate(9)——连接查询和子查询(1)

    请注明转载地址:http://www.cnblogs.com/arhat 在前几章中,我们把HQL的基本查询学习了一下,但是只有基本查询很显然不能满足我们的需求,那么就需要一下复杂查询比如" ...

  7. 一步步学习NHibernate(1)——NHibernate介绍

    请注明转载地址:http://www.cnblogs.com/arhat 第十五章 从本章开始,老魏将给大家一起学习NHibernate这个流行的ORM框架,本来老魏想要和大家一起探讨微软的EF框架的 ...

  8. [NHibernate]ISessionFactory配置

    系列文章 [Nhibernate]体系结构 引言 在上篇文章学习了orm和nhibernate相关概念,这篇文章主要学习ISessionFactory如何配置. 因为NHibernate被设计为可以在 ...

  9. NHibernate 基本配置 (第一篇)

    使用NHibernate最重要的一步就是配置,如果连NHibernate都还没有跑的起来,谈何学习.今天就来详解一下NHibernate的配置. 一.NHibernate基本配置 NHibernate ...

随机推荐

  1. Logstash conf.d 多个配置文件

    概要 今天在群里一个关于在 logstash 的配置目录存在多个配置文件时候如何处理的问题? 我说是加载所有配置文件并合并为一个. lcy@lcy:~/ELK/logstash$ sudo /opt/ ...

  2. java基础学习总结三(jdk7新特性、变量(局部变量和成员变量)、常量以及运算符)

    一:jdk7新特性 可以表示二进制数值,以0b开头,中间可以使用下划线_分隔符.如下: @Test /** * 测试jdk新特性 */ public void testJdk7(){ int a=0b ...

  3. 关于Eclipse中的开源框架EMF(Eclipse Modeling Framework)

    Eclipse项目本身可以划分为4个主要的子项目:Equinox,平台,Java开发工具(Java Development Tools,JDT)和插件开发环境(Plug-in Development ...

  4. 正则表达式 自学笔记整理记录 EASY REGEX~

    整理正则表达式篇                             -wuian7yulian 基础知识介绍 :  1> 字符串的组成: 对于字符串"ABC"来说,其包 ...

  5. SharePoint 学习记事(三)

    做一件事情,计划很重要,但是变化会将一切的付出付诸东流. 13年年底,领导想要调整资源,准备启动项目.于是我们召开了一个类似于启动会的资源筹备会.(处于低成本的考虑,部门领导想要共享日本组的两个做.n ...

  6. asp.net 后台弹出提示框

    1.后台弹出提示信息方法 Response.Write("<scripttype="text/javascript">alert('你所查询的数据不存在!') ...

  7. Cisco交换机中的flash,Rom,RAM,nvram的区别

    Flash内存,也叫闪存,是路由器当中常用的一种内存类型.它是可读写的存储器,在系统重新启动或关机之后仍能保存数据.Flash中存放着当前使用中的IOS(路由器操作系统). 只读内存(ROM)在Cis ...

  8. (二)JAVA使用POI操作excel

    1,创建一个时间格式的单元格 Demo4.java package com.wishwzp.poi; import java.io.FileOutputStream; import java.util ...

  9. 处理不等高TableViewCell

    课题一:如何计算Cell高度 方案一:直接法(面向对象) 想知道妹纸爱你有多深?直接去问妹纸本人吧! 嗯!Cell也是一样的,想知道cell到底有多高?直接问Cell本人就好了.直接法,就是把数据布局 ...

  10. .Net规则引擎Biztalk,Workflow和CKRule的比较

    微软的规则引擎   很多朋友会问,.Net平台有没有规则引擎?像Java就有很多的规则引擎,Drools,ILog都做得非常好,但.Net好像还没有哦.很多知道规则引擎,但不知道.Net的朋友都烦这个 ...