1.创建项目结构

控制器:    SN.Controllers

数据访问 :SN.Dao

实体映射: SN.Models

服务层:     SN.Servers

视图层:   SN.Web

2.添加需要插件

Tools=>Manage Nuget  Package

A.  Spring.Net2.0

B.  NHibernate4.0

C.  Spring.Wb.Mvc4

3.SN.Models

文件夹:Mappings(User.hbm.xml)

文件:User.cs

User.hbm.xml

 <?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="SN.Models.User,SN.Models" table="SN_User" lazy="false">
<id name="Id" column="Id" type="Int32">
<generator class="native" />
</id>
<property name="Name" column="SName" type="String" length="" />
<property name="NickName" column="SNickName" type="String" length="" />
<property name="PassWord" column="SPassWord" type="String" length="" />
<property name="IdentifyId" column="SIdentifyId" type="String" length="" />
<property name="Phone" column="SPhone" type="String" length="" />
<property name="Email" column="SEmail" type="String" length="" />
<property name="CreateTime" column="DCreateDate" type="DateTime" />
<property name="Creator" column="SCreator" type="String" length="" />
<property name="LastTimeLogOn" column="DLastTimeLogOn" type="DateTime" />
</class>
</hibernate-mapping>

User.cs

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace SN.Models
{ [Serializable]
public class User
{
/// <summary>
/// 用户id
/// </summary>
public Int32 Id
{
get;
set;
} /// <summary>
/// 用户名,登录所用的名字
/// </summary>
public string Name
{
get;
set;
} /// <summary>
/// 真实姓名
/// </summary>
public string NickName
{
get;
set;
} /// <summary>
/// 密码
/// </summary>
public string PassWord
{
get;
set;
} /// <summary>
/// 创建日期
/// </summary>
public DateTime CreateTime
{
get;
set;
} /// <summary>
/// 创建人
/// </summary>
public string Creator
{
get;
set;
} /// <summary>
/// Email
/// </summary>
public string Email
{
get;
set;
} /// <summary>
/// 联系电话
/// </summary>
public string Phone
{
get;
set;
} /// <summary>
/// 身份证
/// </summary>
public string IdentifyId
{
get;
set;
} /// <summary>
/// 最后一次登录时间
/// </summary>
public DateTime LastTimeLogOn
{
get;
set;
}
} }

4.SN.Dao

文件夹:Config(Objects.xml  SpringNHibernate.xml)

文件夹:Dao(UserDao.cs)

文件夹:IDao(IUserDao.cs)

文件:HibernateDao.cs

Objects.xml

 <?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net"
xmlns:tx="http://www.springframework.net/tx"> <object id="UserDaoImpl" type="SN.Dao.UserDao, SN.Dao" >
<!-- ref 表示引用的对象 -->
<property name="SessionFactory" ref="NHibernateSessionFactory" />
</object> </objects>

SpringNHibernate.xml

 <?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net"
xmlns:db="http://www.springframework.net/database"
xmlns:tx="http://www.springframework.net/tx"
>
<!--描述-->
<description>
数据访问的配置信息
</description> <!-- 通过主应用程序的上下文配置文件引用 -->
<object type="Spring.Objects.Factory.Config.PropertyPlaceholderConfigurer, Spring.Core">
<property name="ConfigSections" value="databaseSettings"/>
</object>
<!-- connectionString=""-->
<!-- 数据库的配置 -->
<db:provider id="DbProvider"
provider="System.Data.SqlClient"
connectionString="server=${db.server};Database=${db.database};uid=${db.user};pwd=${db.password}"
/> <!-- NHibernate 配置 --> <!-- 可以通过 name 为其指定别名 name="SessionFactory" -->
<object id="NHibernateSessionFactory"
type="Spring.Data.NHibernate.LocalSessionFactoryObject,Spring.Data.NHibernate4" > <!-- 关于数据库连接的配置,直接使用 DbProvider 中的设置,这样,不需要为 Hibernate 再提供连接串和驱动 -->
<property name="DbProvider" ref="DbProvider"/> <!-- 包含有映射文件的程序集,需要分析的hbm程序集名称 -->
<property name="MappingAssemblies">
<list>
<value>SN.Models</value>
</list>
</property> <!-- 其他的参数 -->
<property name="HibernateProperties">
<dictionary>
<!-- 方言 -->
<entry key="dialect" value="NHibernate.Dialect.MsSql2008Dialect"/>
<entry key="use_proxy_validator" value="false" />
<entry key="show_sql" value="true"/>
</dictionary>
</property> <!-- 必须增加此项说明,与 Spring 的声明式事务集成 -->
<property name="ExposeTransactionAwareSessionFactory" value="true" /> </object>
</objects>

UserDao.cs

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Spring.Stereotype;
using Spring.Transaction.Interceptor;
using SN.Models; namespace SN.Dao
{
[Repository]
public class UserDao : HibernateDao, IUserDao
{ public IList<User> GetAll()
{
return GetAll<User>();
}
public IList<User> GetAllUsers()
{
return GetAll<User>();
//return new List<User> { new User { Id = 1, Name = "sulin" } };
}
}
}

IUserDao.cs

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SN.Models;
namespace SN.Dao
{
public interface IUserDao
{
IList<User> GetAllUsers();
}
}

HibernateDao.cs

 using NHibernate;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace SN.Dao
{
public abstract class HibernateDao
{
private ISessionFactory sessionFactory; /// <summary>
/// Session factory for sub-classes.
/// </summary>
public ISessionFactory SessionFactory
{
protected get { return sessionFactory; }
set { sessionFactory = value; }
} /// <summary>
/// Get's the current active session. Will retrieve session as managed by the
/// Open Session In View module if enabled.
/// </summary>
protected ISession CurrentSession
{
get { return sessionFactory.GetCurrentSession(); }
}
protected IList<T> GetAll<T>() where T : class
{
ICriteria criteria = CurrentSession.CreateCriteria<T>();
return criteria.List<T>();
}
}
}

5.SN.Servers

文件夹:Config(Servers.xml)

文件夹:Services(UserService.cs)

文件夹:IServices(IUserService.cs)

Servers.xml

 <?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net"> <object id="UserServiceImpl" type="SN.Servers.UserService,SN.Servers" >
<!-- ref 表示引用的对象 -->
<property name="IUser" ref="UserDaoImpl" />
</object> </objects>

IUserService.cs

 using SN.Dao;
using SN.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace SN.Servers
{
public interface IUserService
{
IUserDao IUser { set; get; }
IList<User> GetAllUsers();
}
}

UserService.cs

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace SN.Servers
{ public class UserService:IUserService
{ public Dao.IUserDao IUser
{
get;
set;
} public IList<Models.User> GetAllUsers()
{
return IUser.GetAllUsers();
}
}
}

Spring.Net2.0+NHibernate4.0 +Asp.Net Mvc4 一的更多相关文章

  1. Spring.Net2.0+NHibernate4.0 +Asp.Net Mvc4 二

    6.SN.Controllers 文件夹Config(Controllers.xml) 文件夹Controllers(TestController.cs) Controllers.xml <?x ...

  2. 使用bootstrap+asp.net mvc4+IBatis.Net实现的小程序

    这个项目用到了三个技术点 1.bootstap 3.0 2.asp.net mvc4 3.IBatis.Net 这个三个技术点分别解决前端界面展示.中间mvc路由控制.实体框架映射数据访问 重点分页问 ...

  3. SNF快速开发平台3.0之BS页面展示和九大优点-部分页面显示效果-Asp.net+MVC4.0+WebAPI+EasyUI+Knockout

    一)经过多年的实践不断优化.精心维护.运行稳定.功能完善: 能经得起不同实施策略下客户的折腾,能满足各种情况下客户的复杂需求. 二)编码实现简单易懂.符合设计模式等理念: 上手快,见效快.方便维护,能 ...

  4. SNF快速开发平台3.0之-界面个性化配置+10种皮肤+7种菜单-Asp.net+MVC4.0+WebAPI+EasyUI+Knockout

    一.个性配置-首页:可以进行拖动保存配置,下次登录时就会按配置的进行加载 二.个人配置页面 7种菜单用户可自定义配置,和预览效果 10种皮肤自定义配置,和预览效果 皮肤和菜单可以随意组合-部分截图: ...

  5. 建筑材料系统 ASP.NET MVC4.0 + WebAPI + EasyUI + Knockout 的架构设计开发

    框架介绍: 1.基于 ASP.NET MVC4.0 + WebAPI + EasyUI + Knockout 的架构设计开发 2.采用MVC的框架模式,具有耦合性低.重用性高.生命周期成本低.可维护性 ...

  6. 利用CSS预处理技术实现项目换肤功能(less css + asp.net mvc4.0 bundle)

    一.背景 在越来越重视用户体验的今天,换肤功能也慢慢被重视起来.一个web系统用户可以选择一个自己喜欢的系统主题,在用户眼里还是会多少加点分的.我们很开心的是easyui v1.3.4有自带defau ...

  7. Asp.Net MVC4.0 官方教程 入门指南之五--控制器访问模型数据

    Asp.Net MVC4.0 官方教程 入门指南之五--控制器访问模型数据 在这一节中,你将新创建一个新的 MoviesController类,并编写代码,实现获取影片数据和使用视图模板在浏览器中展现 ...

  8. Asp.Net MVC4.0 官方教程 入门指南之四--添加一个模型

    Asp.Net MVC4.0 官方教程 入门指南之四--添加一个模型 在这一节中,你将添加用于管理数据库中电影的类.这些类是ASP.NET MVC应用程序的模型部分. 你将使用.NET Framewo ...

  9. Asp.Net MVC4.0 官方教程 入门指南之三--添加一个视图

    Asp.Net MVC4.0 官方教程 入门指南之三--添加一个视图 在本节中,您需要修改HelloWorldController类,从而使用视图模板文件,干净优雅的封装生成返回到客户端浏览器HTML ...

随机推荐

  1. marquee标签(跑马灯效果)

  2. Amazon AWS EC2存储

  3. 【daydayup】weTalk

    先看一下项目效果 这个是我运行的作者的项目的wetalk-server项目,他还有wetalk-client 项目 先放下作者的github项目地址:https://github.com/mangyu ...

  4. AutoIt自动化编程(1)【转】

    1.运行程序 Run 命令或者函数用来运行外部可执行文件 AU3:Run ( "文件名" [, "工作目录" [, 标志]] ) EXAMPLE: AU3:Ru ...

  5. [ javasript ] javascript中的each遍历!

    1.数组中的each var arr = [ "one", "two", "three", "four"]; $.eac ...

  6. raft学习

    http://thesecretlivesofdata.com/raft/ 选举 角色:  leader 领导者 Follower跟随者  Candidate候选者 如果跟随者在一定时间内,么有收到领 ...

  7. input 的 placeholder 样式修改

    input::-webkit-input-placeholder{ color:#999999; } input::-moz-placeholder{ /* Mozilla Firefox 19+ * ...

  8. VS2010-MFC(对话框:创建对话框类和添加控件变量)

    转自:http://www.jizhuomi.com/software/153.html 前两讲中讲解了如何创建对话框资源.创建好对话框资源后要做的就是生成对话框类了.生成对话框类主要包括新建对话框类 ...

  9. MySQL数据库--创建表,查询

    MySQL创建表: 表(一)Student (学生表): CREATE TABLE `Student` ( `sno` ) DEFAULT NULL, `sname` ) DEFAULT NULL, ...

  10. <每日一题>题目6:二分查找

    #二分查找 ''' 1.end问题 2.44对应的end<start 找不到情况 3.返回值递归的情况 4,611,aim太大的情况 ''' l = [2,3,5,10,15,16,18,22, ...