`

Spring.Net + NHibernate 入门例子

阅读更多
Spring.Net 是一个很强大的框架,在java里非常的火,NHibernate也是从java里移植过来的.不过和Java下面的用法有所区别.下面我们以一个实例来说说他们在.net下的用法.
新建一个项目:名字叫SpringHiberate.
首先,我们修改我们的配置文件web.config:
<?xml version="1.0" encoding="utf-8"?>

<configuration>
  
<configSections>
    
<sectionGroup name="spring">
      
<section name="context" type="Spring.Context.Support.WebContextHandler, Spring.Web"/>
      
<section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core"/>
    
</sectionGroup>
    
<section name="SpringOverrideProperty" type="System.Configuration.NameValueSectionHandler"/>
    
<section name="nhibernate" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  
</configSections>

  
<SpringOverrideProperty>
    
<add key="DbProvider.ConnectionString" value="Data Source=192.168.1.21;Database=FastSpring20;User ID=sa;Password=oilchem2007;Trusted_Connection=False"/>
    
<add key="SystemInit.IsDebug" value="true"/>
    
<add key="SystemInit.Level" value="4"/>
  
</SpringOverrideProperty>
  

  
<!-- Spirng.Net 配置 -->
  
<spring>
    
<context>
      
<resource uri="config://spring/objects"/>
      
<resource uri="assembly://SpringHiberate/SpringHiberate/spring_bean_dao.xml"/>
    
</context>
    
<objects xmlns="http://www.springframework.net"/>
  
</spring>
  
  
<appSettings/>

  
<connectionStrings/>

  
<system.web>
    
<compilation debug="true" />
    
<authentication mode="Windows" />
    
    
<httpModules>
      
<add name="Spring" type="Spring.Context.Support.WebSupportModule, Spring.Web"/>
    
</httpModules>
    
    
<httpHandlers>
      
<add verb="*" path="*.aspx" type="Spring.Web.Support.PageHandlerFactory, Spring.Web"/>
    
</httpHandlers>
  
</system.web>
</configuration>

然后我们添加一个Model类User.cs:
 1using System;
 2
 3namespace SpringHiberate.dao.model
 4{
 5    public class User
 6    {
 7        private Int32 id;
 8
 9        public Int32 Id
10        {
11            get return id; }
12            set { id = value; }
13        }

14        private string name;
15
16        public string Name
17        {
18            get return name; }
19            set { name = value; }
20        }

21        private string email;
22
23        public string Email
24        {
25            get return email; }
26            set { email = value; }
27        }

28    }

29}
我们再在User.cs目录里添加一个文件User.hbm.xml,文件的生成操作为嵌入的资源
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
  
<class name="SpringHiberate.dao.model.User,SpringHiberate" table="FS_User" lazy="false">
    
<id name="Id" column="id" type="Int32">
      
<generator class="native" />
    
</id>
    
<property name="Name" column="uname" type="String" length="50" />
    
<property name="Email" column="uemail" type="String" length="50" />
  
</class>
</hibernate-mapping>
然后我们写一个SQLProvider类SQLProvider.cs.
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Spring.Data.Common;

namespace SpringHiberate.dao
{
    
public class SQLProvider : IDbProvider
    {
        
#region IDbProvider 成员
        
private string _connectionString = "";
        
public string ConnectionString
        {
            
get
            {
                
return this._connectionString;
            }
            
set
            {
                
this._connectionString = value;
            }
        }

        
public IDbCommand CreateCommand()
        {
            
return null;
        }

        
public object CreateCommandBuilder()
        {
            
return null;
        }

        
public IDbConnection CreateConnection()
        {
            
return null;
        }

        
public IDbDataAdapter CreateDataAdapter()
        {
            
return null;
        }

        
public IDbDataParameter CreateParameter()
        {
            
return null;
        }

        
public string CreateParameterName(string name)
        {
            
return null;
        }

        
public string CreateParameterNameForCollection(string name)
        {
            
return null;
        }

        
public IDbMetadata DbMetadata
        {
            
get {
                
return null;
            }
        }

        
public string ExtractError(Exception e)
        {
            
return null;
        }

        
public bool IsDataAccessException(Exception e)
        {
            
return false;
        }

        
#endregion
    }
}
在写一个UserDao类(UserDao.cs)来操作
using System;
using System.Collections;
using Spring.Data.NHibernate.Support;
using SpringHiberate.dao.model;

namespace SpringHiberate.dao
{
    
public class UserDao : HibernateDaoSupport
    {
        
public void Save(User user)
        {
            HibernateTemplate.Save(user);
        }

        
public void Delete(User user)
        {
            HibernateTemplate.Delete(user);
        }

        
public void Update(User user)
        {
            HibernateTemplate.Update(user);
        }

        
public IList FindAll()
        {
            
return HibernateTemplate.LoadAll(typeof(User));
        }

        
public User Find(Object ID)
        {
            
return (User)HibernateTemplate.Load(typeof(User), ID);
        }
    }
}
现在代码部分基本写完,我们开始写spring的配置文件(spring_bean_dao.xml),文件的生成操作也为嵌入的资源,他配置了数据库操作以及DAO部分,页面的操作DAO也是依赖注入的

<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net"
         xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation
="http://www.springframework.net http://www.springframework.net/xsd/spring-objects.xsd">

  
<object id="DbProvider" type="SpringHiberate.dao.SQLProvider, SpringHiberate">
    
<property name="ConnectionString" value="Data Source=192.168.1.21;Database=FastSpring20;User ID=sa;Password=oilchem2007;Trusted_Connection=False" />
  
</object>

  
<object id="SessionFactory" type="Spring.Data.NHibernate.LocalSessionFactoryObject, Spring.Data.NHibernate12">
    
<property name="DbProvider" ref="DbProvider" />
    
<property name="MappingAssemblies">
      
<list>
        
<value>SpringHiberate</value>
      
</list>
    
</property>
    
<property name="HibernateProperties">
      
<dictionary>
        
<entry key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider" />
        
<entry key="hibernate.dialect" value="NHibernate.Dialect.MsSql2000Dialect" />
        
<entry key="hibernate.connection.driver_class" value="NHibernate.Driver.SqlClientDriver" />
        
<entry key="show_sql" value="true" />
      
</dictionary>
    
</property>
  
</object>

  
<object id="HibernateTransactionManager" type="Spring.Data.NHibernate.HibernateTransactionManager, Spring.Data.NHibernate12">
    
<property name="DbProvider" ref="DbProvider" />
    
<property name="sessionFactory" ref="sessionFactory" />
  
</object>

  
<object id="TransactionInterceptor" type="Spring.Transaction.Interceptor.TransactionInterceptor, Spring.Data">
    
<property name="TransactionManager" ref="HibernateTransactionManager" />
    
<property name="TransactionAttributeSource">
      
<object type="Spring.Transaction.Interceptor.AttributesTransactionAttributeSource, Spring.Data" />
    
</property>
  
</object>

  
<object<span style
分享到:
评论

相关推荐

    spring.net+nhibernate+mvc4

    标题 "spring.net+nhibernate+mvc4" 暗示了这个项目是关于使用 .NET 框架中的 Spring.NET、NHibernate 和 MVC4(ASP.NET MVC 4)技术来构建一个应用程序的实例。Spring.NET 是 .NET 平台上的轻量级依赖注入框架,它...

    mvc4+spring.net+nhibernate小例子

    这个小例子展示了如何整合这三种技术来创建一个基于MVC架构的.NET应用程序,利用Spring.NET提供依赖注入(DI)和面向方面的编程(AOP),以及NHibernate作为持久层框架处理数据库交互。以下是关于这些技术及其整合的...

    Winform+Spring.net+Nhibernate+Mysql简单示例

    一直琢磨着在winform上也搞一个spring.net+Nhibernate的框架,。这个框架使用的是Spring.NET-1.3.2,NHibernate-3.2.0,在mysql5.1上建了一个user表,字段请各位看映射文件啦(什么?你不懂什么是映射文件?那劝客官...

    spring.net+nhibernate+mvc+easyui源码

    《Spring.NET + NHibernate + MVC + EasyUI:企业级应用框架深度解析》 在现代软件开发中,构建高效、可扩展且易于维护的企业级应用程序是一项挑战。本篇将深入探讨一个基于Spring.NET、NHibernate、MVC(Model-...

    Spring.net+NHibernate示例源码

    这是GoldArch(本人命名为黄金框架)的中间产品,框架最后成型于asp.net+mvc+spring.net+nhibernate+extjs(and coolite) ,实现了Spring.net+NHibernate的封装。主要是泛型DAO的配置和应用。同时多数据库连接(权限...

    搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架

    搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架系列文档 包含 6 个文档,以及1个demo ,以及包含一个springNihibernate 压缩包,其中包含相应的dll文件 案例来自&lt;博客园&gt;FlyDragon 的 随笔,我在此只是将其整理;版权...

    《实战C#.NET编程-Spring.NET & NHibernate从入门到精通》代码

    《实战C#.NET编程-Spring.NET & NHibernate从入门到精通》是一本深入探讨C# .NET平台下Spring.NET和NHibernate两个关键框架的实践指南。这本书旨在帮助开发者从基础知识开始,逐步掌握这两个强大的工具,从而提升...

    MVC+Spring.net+Nhibernate+EasyUI+Jquery

    在IT行业中,构建高效、可扩展的Web应用是至关重要的,而"ASP.NET MVC+Spring.NET+NHibernate+EasyUI+JQuery"这个组合提供了一种强大的解决方案。让我们深入探讨一下这些技术及其在项目开发中的作用。 首先,ASP...

    Spring.Net,Nhibernate多数据库操作

    在IT行业中,Spring.Net和NHibernate是两个非常重要的开源框架,它们在.NET开发领域中扮演着关键角色。Spring.Net是一个全面的.NET应用框架,提供依赖注入(DI)、面向切面编程(AOP)以及用于构建企业级应用的各种...

    Spring.net+Nhibernate+MVC2架构

    **Spring.NET+NHibernate+MVC2 架构详解** 在软件开发领域,Spring.NET、NHibernate 和 MVC2 是三个至关重要的技术组件,它们共同构建了一个高效、可扩展且易于维护的企业级应用程序架构。Spring.NET 是 .NET 平台...

    Spring.Net2.0.1+Nhibernate4

    Spring.NET2.0.1与NHibernate4的整合是一个强大的组合,为.NET开发人员提供了灵活、可测试和可扩展的应用程序架构。Spring.NET是一个开源的轻量级.NET框架,它借鉴了Java Spring框架的设计理念,提供了依赖注入、AOP...

    可以运行的Spring.net+NhibernateSample+SQL2000DB

    Spring.NET和NHibernate是两个非常重要的开源框架,用于构建企业级的.NET应用程序。Spring.NET是.NET平台上的一种轻量级框架,提供了依赖注入、面向方面编程(AOP)以及企业服务等核心功能,有助于提高代码的可测试...

    spring.net+Nhibernate 学习资料与源码

    《Spring.NET+NHibernate 学习资料与源码》是一份专为开发者提供的宝贵资源,它涵盖了Spring.NET框架和NHibernate ORM工具的整合应用。Spring.NET是.NET平台上的一款轻量级、全面的开源应用框架,而NHibernate则是一...

    Spring.NET+NHibernate+NHibernate.Mapping.Attribute自动映射

    不喜欢NHibernate传统的*.hbm.xml来对数据库进行映射的朋友有福了,可以使用NHibernate.Mapping.Attribute.dll来实现自动映射。 减少不小的工作量。

    开源框架完美组合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI

    开源框架完美组合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文双语言小型企业网站Demo Domain:领域模型 Dao:持久层 Service:服务层 WebSite:表示层 Common:通用类

    Spring.NET&NHibernate从入门到精通

    《Spring.NET&NHibernate从入门到精通》这本书深入浅出地介绍了如何在.NET平台上利用Spring.NET和NHibernate这两个强大的开源框架进行开发。Spring.NET是.NET平台上的一种轻量级应用程序框架,它提供了依赖注入、AOP...

    基于winform的spring.net+Nhibernate示例源码.rar

    《深入解析基于Winform的Spring.NET + NHibernate应用示例》 在当今的软件开发领域,框架的应用已经变得越来越普遍,它们能够极大地提高开发效率,降低项目风险。本示例源码是关于如何在Windows Forms(Winform)...

    spring.net+nhibernate

    **整合例子:Spring.NET + NHibernate + FastSpring** 在Spring.NET和NHibernate的整合中,Spring.NET可以作为容器来管理NHibernate的SessionFactory和Session,实现对象的生命周期管理。这样,开发者可以通过依赖...

    Spring.net+NHibernate示例源码【Rugate原创】

    Spring.NET和NHibernate是两个非常重要的开源框架,它们在.NET开发领域中有着广泛的应用。Spring.NET是一个全面的企业级应用框架,提供了依赖注入、面向切面编程(AOP)、任务调度等核心功能,使得代码更加模块化,...

Global site tag (gtag.js) - Google Analytics