本节主要内容: Configuration SessionFactory Session 首先我们再来看一下上一节的测试代码: //加载配置文件 Configuration...SessionFactory: SessionFactory factory = config.buildSessionFactory(); 我们知道主配置文件里面最外面的便是SessionFactory是一个重量级的组件,是一个单例的,线程安全的。...一般SessionFactory实例都不进行关闭(开销太大),而是在应用结束的时候自动将其销毁。...Session: session由SessionFactory的getCurrentSession()或者openSession()进行创建,在web应用中,每当有一个用户访问时就会为这个用户创建一个Session
在NHibernate中,ISession是操作数据的核心,我们需要通过SessionFactory来建造ISession来进行数据的交互。...SessionFactory中反映了数据库映射关系,我们来看下配置: nhibernate-configuration-2.2">...下面我们在代码中创建一个SessionFactory,NHibernate建议我们在一个应用程序中使用一个数据库一个SessionFactory,这里我们用单数据库,代码如下: public static...sessionFactory = CreateSessionFactory(); } return sessionFactory; }...使用NHibernate的配置 也就是你可以按照原先的方式进行配置,而读取呢使用Fluent来读取,然后创建SessionFactory,或许你感觉这不是多余了嘛,那是因为还没有讲到Mapping
NHibernate 缓存 NHibernate 支持两种级别的缓存, 即一级缓存以及二级缓存。...二级缓存 二级缓存是 SessionFactory 级别的缓存, 也就是数据库级别的缓存, 可以被同一个 SessionFactory 创建的所有 session 共享。...NHibernate 的二级缓存是可以扩展的, NHibernate.ControlLib 提供了几个实现, 分别适用于不同的场景: NHibernate.Caches.MemCache NHibernate.Caches.Prevalence...NHibernate.Caches.SharedCache NHibernate.Caches.SysCache NHibernate.Caches.SysCache2 NHibernate.Caches.Velocity..._sessionFactory.OpenSession()) { session.Get(1); } } 对应的输出为: NHibernate: SELECT
Nhibernate自动到项目输出中查找此文件。必须将此文件的属性设置为始终复制。...问题二:在webconfig中配置Nhibernate,不使用单独的:hibernate.cfg.xml 在webconfig中配置Nhibernate是我们另外一种配置方式。格式如下: sessionFactory 是针对一个数据库,所以我们可以采用单例模式来实现一个NhibernateHelper。..."; private static readonly ISessionFactory sessionFactory; static NhibernateHelper()...{ Configuration cfg = new Configuration(); sessionFactory = new Configuration
summary> public sealed class NHibernateHelper { private static readonly ISessionFactory sessionFactory...实例 sessionFactory = new Configuration().Configure(configPath).BuildSessionFactory(); ...ISession currentSession = sessionFactory.OpenSession(); return currentSession; }... //关闭NHibernate实例 public static void CloseSessionFactory() { if (sessionFactory...= null) { sessionFactory.Close(); } } } } 6、编写数据库访问层代码
本文链接:https://blog.csdn.net/CJB_King/article/details/53456282 准备工具:VS2015(版本不限) ,Nhibernate包,和MySql...先写一个简单的给你定义的数据库中添加一条元素的代码:(不使用Nhibernate的) 前提:先把该用的dll文件,添加到引用里面去不然,会连接不成功,之前下载的Connector/Net(选择.Net&...包来实现一个很简单的对数据增删改查的操作,这一次需要用到我们之前下载的Nhibernate包里面的文件,全部dll文件引入之后,“引用”下面应该是这样的: ?...帮助类,使用Nhibernate连接数据库,用来得到sessionFactory,然后使用sessionFactory里面的session去操作数据库,代码如下: using System; using...} //得到sessionFactory private static ISessionFactory SessionFactory
; using NHibernate.Cfg; namespace WebApp { public sealed class NHibernateHelpe { private...const string CurrentSessionKey = “nhibernate.current_session“; private static readonly ISessionFactory...sessionFactory; static NHibernateHelper() { string cfgPath = @”E:\my project\nhibernate study\simle...1\NHibernateStudy1\NhibernateSample1\hibernate.cfg.xml“; sessionFactory = new NHibernate.Cfg.Configuration...= null) { sessionFactory.Close(); } } } } 用dottrace跟踪结果为:
2.3 获取ISessionFactory 然后获取一个ISessionFactory: Configuration cfg = new Configuration(); var sessionFactory...因为没有为SQL Server安装数据访问驱动: System.Data.SqlClient 将数据访问驱动安装成功后,运行可以获得sessionFactory。...sessionFactory用来创建一个访问数据库的Session 2.4 增删改查 先来个简单的示例类: public class Cat { public virtual string Id...然后编写实例代码: Configuration cfg = new Configuration().Configure(); using (var sessionFactory = cfg.BuildSessionFactory...()) using (var session = sessionFactory.OpenSession()) { // 通过session操作 session.Close(); } 新增一个Cat
NHibernate 支持两种级别的缓存, 即一级缓存以及二级缓存。...二级缓存 二级缓存是 SessionFactory 级别的缓存, 也就是数据库级别的缓存, 可以被同一个 SessionFactory 创建的所有 session 共享。...NHibernate 的二级缓存是可以扩展的, NHibernate.ControlLib 提供了几个实现, 分别适用于不同的场景: NHibernate.Caches.MemCache NHibernate.Caches.Prevalence...NHibernate.Caches.SharedCache NHibernate.Caches.SysCache NHibernate.Caches.SysCache2 NHibernate.Caches.Velocity..._sessionFactory.OpenSession()) { session.Get(1); } } 对应的输出为: NHibernate: SELECT
但使用Nhibernate的绑定时,出错,由于对NHibernate不熟悉,所以就完全不知道怎么解决。最后只能考虑结合第一个方法来创新一下。...最后解决过程如下: 1.建立一个NHibernateHelper这样的一个类,用于创建SessionFactory和创建session等工作。代码如下。...using System; using System.Web; using NHibernate.Context; using NHibernate; using NHibernate.Cfg; namespace..."; private static readonly ISessionFactory sessionFactory; static readonly object padlock... = new object(); /// /// 初始化,建立只读的sessionfactory ///
二、NHibernate使用步骤 1.为系统引入NHibernate的库,并且配置NHibernate; 2.新建一个将要持久化.Net对象的表; 3.构建一个需要被持久化的.Net类; 4.构建一个可以让...NHibernate知道如何完成ORM映射的XML文件; 5.使用NHibernate的API来编程 三、NHibernate的使用 1....NHibernate.ISessionFactory SessionFactory=null; (2) 在系统初始化的时候加载XML,并创建Factory mCfg.AddXmlFile(...ApplicationPath +”/Course.hbm.xml”); mCfg.AddXmlFile( ApplicationPath +”/Student.hbm.xml”); SessionFactory...(Student)list[0]; //….. } vSession.Close(); (4) 根据主键查询 int studentID=1; ISession vSession= SessionFactory.OpenSession
网上大多数是以xml的方式配置nhibernate,本文则已class的方式来配置,并通过IOC(依赖注入,本文以构造注入)的方式注册nhibernate。...即nhibernate的mapping。...; using NHibernate.Cfg; using NHibernate.Cfg.MappingSchema; using NHibernate.Dialect; using NHibernate.Driver...SessionFactoryProvider : ISessionFactoryProvider { private static readonly ISessionFactory sessionFactory...Configuration { get; set; } #region ISessionFactoryProvider 成员 public ISessionFactory SessionFactory
今天说一说Nhibernate_nhibernate与ef区别,希望能够帮助大家进步!!! 什么是NHibernate?...NHibernate是一个基于.Net,用于关系数据库的对象持久化类库.它是著名的Hibernate的.Net版本....> nhibernate-mapping-2.0"> NHibernate.Demo.QuickStart.User...驱动,连接到本地的nhibernate数据库,并且使用提供的用户和密码.还会有其他的配置项,你可以参看文档....在代码里面使用NHibernate是很简单的事情: 1. 创建一个Configuration对象. 2.
学习和使用Nhibernate已经很久了,一直想写点东西和大家一起学习使用Nhibernate。博客园里也有很多大牛写了很多关于Nhibernate入门的文章。...3、怎么搭建Nhibernate? 4、怎么使用Nhibernate? 好,我们就带着这几个问题开始我们的Nhibernate的旅程。 ...其他的都是Nhibernate最重要的数据库provider,sessionfactory等。不详细说。看官方文档!..."); ISessionFactory _SessionFactory = cfg.BuildSessionFactory();//建立Session工厂...ISession session = _SessionFactory.OpenSession();//打开Session MyWeb.WebTemp.Model.User myUser = new User
static ISessionFactory _sessionFactory; private static ISessionFactory SessionFactory...{ get { if (_sessionFactory == null) {...configuration = new Configuration(); configuration.Configure(); _sessionFactory...= configuration.BuildSessionFactory(); } return _sessionFactory;...public static ISession OpenSession() { try { return SessionFactory.OpenSession
C#—Nhibernate探索 本篇文章,让我们一起来探索Nhibernate。 首先我们去搜索Nhibernate下载地址,如下链接所示。 该版本可能是最新版,我下载的4.0.4.GA。...nhibernate-configuration.xsd和nhibernate-mapping.xsd两个文件暂时不知道要干什么用的。...public class NHibernateHelper { private ISessionFactory _sessionFactory; public NHibernateHelper...() { _sessionFactory = GetSessionFactory(); } private ISessionFactory...BuildSessionFactory(); } public ISession GetSession() { return _sessionFactory.OpenSession
Configuration: 用于配置并启动NHibernate, 通过此实例来获取对象关系映射文件中的元数据 可以通过此实例动态配置NHibernate的属性 此实例可以创建SessionFactory...SessionFactory: 一个这个类型的实例对应一个数据存储源 可以创建Session的实例 Session: 持久化管理器 保存、更新、删除、加载对象 Query 查询对象 用于控制执行查询的过程
本篇目的:配置Spring.Net和Nhibernate。配置Spring.Net来注入Nhibernate需要的SessionFactory,配置业务逻辑层所需要的Dao层属性的支持。...Nhibernate就是这样要求的。我们按照模板来配置就行了。User.hbm.xml中的配置是根据数据库中的表和我们的实体类User进行对应的。这方面不多讲,可以参考Nhibernate的官方文档。...先看一下目前项目的截图: (1)CommonDao.xml文件是Nhibernate操作数据库的核心的配置。并配置了可注入到Dao层的SessionFactory。没什么好说的,其实也都是模板。...sessionFactory" ref="SessionFactory" /> SessionFactory。呵呵这里不详细讲。为什么Dao层里面没有属性SessionFactory,但是我们这里配置了呢?
现在的项目中数据访问使用的是NHibernate的一个ORM框架,小弟也是在后期加入项目组,之前对NHibernate就一直没有接触过,所以一直在学习NHibernate,都是一些很基础的一些东西,写出来总结一下...如果你下个系统的学习NHibernate,给大家推荐一个博客,详细的介绍了NHibernate,我也是根据这篇博客学习的。...之后在每个数据操作类可以使用这个辅助类创建ISession public class NHibernateHelper { private ISessionFactory _sessionFactory...; public NHibernateHelper() { _sessionFactory = GetSessionFactory();...BuildSessionFactory(); } public ISession GetSession() { return _sessionFactory.OpenSession
> nhibernate-configuration-2.2" > <property...; using NHibernate.Cfg; namespace NHibernateDemo { /// /// 说明:这个类是为了演示NHibernate中的...2010-03-07 /// public class NHibernateCRUD { private ISessionFactory sessionFactory...; public NHibernateCRUD() { sessionFactory = new Configuration().Configure...BuildSessionFactory(); } public ISession GetSession() { return sessionFactory.OpenSession