mvc4 整合nhibernate3.0配置详解编程语言
2023-06-13 09:20:43 时间
鉴于大家都在解决问题或是学习新东西的时候,并不关注是谁又是谁帮你解决了问题,所有这里为自己做下宣传,我为自己代言。
首先介绍下我的开发环境是vs2010旗舰版,nhibernate采用的是3.0版本。
一、在mvc4项目中装载配置nhibernate的第一种方式是采用【hibernate.xml】的方式:首先看图
使用这种方式配置nhibernate的话,需要将hibernate.xml【属性】改为始终复制到输入目录或作为嵌入资源使用。
当然要使用nhibernate的化,需要在项目中引入hibernate.dll.
接下来我们来看下,在代码中如何来装载我们对nhibernate的配置:
public class NhibernateHelper { private ISessionFactory _sessionFactory; private static ISession _session = null; public NhibernateHelper() { _sessionFactory = GetSessionFactory(); } public ISessionFactory GetSessionFactory() { //加载文件的方式 Configuration cfg = new Configuration().Configure(AppDomain.CurrentDomain.BaseDirectory+ /hibernate.cfg.xml //Configuration cfg = new Configuration(); //cfg.AddAssembly(Assembly.GetExecutingAssembly()); HibernatingRhinos.Profiler.Appender.NHibernate.NHibernateProfiler.Initialize();//NHProf工具 cfg.AddAssembly( BusinessDemo //BusinessDemo指的是包含数据表的dll类库如:user.hbm.xml //cfg.AddAssembly(typeof(User).Assembly); //cfg.AddAssembly(typeof(Order).Assembly); return cfg.BuildSessionFactory(); } public ISession GetSession() { if (_session != null _session.IsOpen) return _session; else { _session = _sessionFactory.OpenSession(); return _session; } } }
然后我们在mvc4 Controller里边就可以这样来做下测试:
public class CustomerController : Controller{ public ISession session { get { return new NhibernateHelper().GetSession(); } } public ActionResult Index() { Customer customer = this.session.Load Customer var result = new Result(); using (ITransaction tx = this.session.BeginTransaction()) { try { this.session.Delete(customer); this.session.Flush(); tx.Commit(); result.success = true; result.msg = 删除成功! } catch (HibernateException) { tx.Rollback(); result.success = true; result.msg = 删除失败! } } return Json(result, JsonRequestBehavior.AllowGet); } }
二、接下来我们来看如何在么mvc项目中如何在web.config中配置nhibernate信息:直接上代码
configSections section name= hibernate-configuration type= NHibernate.Cfg.ConfigurationSectionHandler, NHibernate requirePermission= false / /configSections connectionStrings /connectionStrings appSettings add key= webpages:Version value= 2.0.0.0 / add key= PreserveLoginUrl value= true / add key= ClientValidationEnabled value= true / add key= UnobtrusiveJavaScriptEnabled value= true / /appSettings hibernate-configuration xmlns= urn:nhibernate-configuration-2.2 session-factory property name= connection.provider NHibernate.Connection.DriverConnectionProvider, NHibernate /property property name= connection.connection_string Database=test;Data Source=localhost;User Id=root;Password=root /property property name= dialect NHibernate.Dialect.MySQL5Dialect /property property name= connection.driver_class NHibernate.Driver.MySqlDataDriver /property property name= proxyfactory.factory_class NHibernate.Bytecode.DefaultProxyFactoryFactory,NHibernate /property /session-factory /hibernate-configuration
注: property name= dialect 、 property name= connection.driver_class 这两个属性一定要和链接的数据库保持一致,这里边我采用的是mysql数据库。
然后我们直接来看如何来装载它:
public class NhibernateHelper { private ISessionFactory _sessionFactory; private static ISession _session = null; public NhibernateHelper() { _sessionFactory = GetSessionFactory(); } public ISessionFactory GetSessionFactory() { //加载文件的方式 //Configuration cfg = new Configuration().Configure(AppDomain.CurrentDomain.BaseDirectory+ /hibernate.cfg.xml Configuration cfg = new Configuration(); cfg.AddAssembly(Assembly.GetExecutingAssembly()); HibernatingRhinos.Profiler.Appender.NHibernate.NHibernateProfiler.Initialize();//NHProf工具 //cfg.AddAssembly( BusinessDemo //cfg.AddAssembly(typeof(User).Assembly); //cfg.AddAssembly(typeof(Order).Assembly); return cfg.BuildSessionFactory(); } public ISession GetSession() { if (_session != null _session.IsOpen) return _session; else { _session = _sessionFactory.OpenSession(); return _session; } } }
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/15104.html
cjavamysqlxml相关文章
- spring学习笔记一 入门及配置详解编程语言
- DBCP与C3P0数据库连接池配置说明详解编程语言
- 脚本命令加载外部配置文件夹conf详解编程语言
- 使用annotation配置hibernate映射关系详解编程语言
- ssh文件配置详解编程语言
- [javaEE] Servlet的手动配置详解编程语言
- Spring声明式事务配置管理方法(Spring中的四种声明式事务的配置)详解编程语言
- Activiti 配置Oracle不能自动创建表解决方法详解编程语言
- ibatis配置log4j输出sql日志信息详解编程语言
- SpringMVC 配置log4j详解编程语言
- Spring Boot入门第三天:配置日志系统和Druid数据库连接池。详解编程语言
- Spring Cloud(八):分布式配置中心服务化和高可用详解编程语言
- Spring Cloud(六):Spring Cloud Config 分布式配置中心使用教程详解编程语言
- SpringBoot整合MyBatisPlus配置动态数据源详解编程语言
- web.xml配置详解之listener编程语言
- Springboot多数据源配置详解编程语言
- php-fpm配置及操作详解编程语言
- spring boot配置mybatis和事务管理详解编程语言
- SAP STO 退货业务的后台配置说明详解编程语言
- SAP-EWM/ECC 系统后台配置详解编程语言
- springmvc拦截器配置详解编程语言
- Oracle VIP配置:走向更高品质体验(oraclevip配置)