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也是依赖注入的
相关推荐
这是一个简单的mvc4+spring.net+nhibernate做的小例子,数据库是MSSQL 2008,在App_Data有数据库文件
一直琢磨着在winform上也搞一个spring.net+Nhibernate的框架,。这个框架使用的是Spring.NET-1.3.2,NHibernate-3.2.0,在mysql5.1上建了一个user表,字段请各位看映射文件啦(什么?你不懂什么是映射文件?那劝客官...
spring.net+nhibernate+mvc+easyui企业应用解决方案源码。
这是GoldArch(本人命名为黄金框架)的中间产品,框架最后成型于asp.net+mvc+spring.net+nhibernate+extjs(and coolite) ,实现了Spring.net+NHibernate的封装。主要是泛型DAO的配置和应用。同时多数据库连接(权限...
Spring.Net+Nhibernate多数据库操作示例代码
实例+说明文档自己配个数据库连接就能跑起来
搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架系列文档 包含 6 个文档,以及1个demo ,以及包含一个springNihibernate 压缩包,其中包含相应的dll文件 案例来自<博客园>FlyDragon 的 随笔,我在此只是将其整理;版权...
开源框架完美组合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文双语言小型企业网站Demo
《实战C#.NET编程-Spring.NET & NHibernate从入门到精通》代码部分+《实战C#.NET编程-Spring.NET & NHibernate从入门到精通》书籍内容
ASP.NET MVC+Spring.net+Nhibernate+EasyUI+Jquery开发案例,运用这几个技术开发的项目
不喜欢NHibernate传统的*.hbm.xml来对数据库进行映射的朋友有福了,可以使用NHibernate.Mapping.Attribute.dll来实现自动映射。 减少不小的工作量。
开源框架完美组合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文双语言小型企业网站Demo Domain:领域模型 Dao:持久层 Service:服务层 WebSite:表示层 Common:通用类
关于Spring.NET+NHibernate+MVC4框架所用到的所有DLL,Srping.Core.dll版本2.0,Spring.Data.NHibernate33
可以运行的Spring.net+NhibernateSample+SQL2000DB
Spring.Net+NHibenate+Asp.Net mvc +ExtJs 系列文档 包含 6 个文档,以及4个demo ,以及包含一个NMG-2.1Nhibernate生成工具,可以生成实体对应的实体类以及对应的.hbm.xml类. 案例来自<博客园>孤独侠客(似水流年) 的 ...
开源框架完美组合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文双语言小型企业网站Demo
基于winform的spring.net+Nhibernate示例源码.rar
Spring.net+Nhibernate
C#.net 使用NHibernate做持久层,spring.net 进行DI,Codesmith作为代码生成工具