Spring.Net2.0+NHibernate4.0 +Asp.Net Mvc4 一

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

 1 <?xml version="1.0" encoding="utf-8" ?>
 2 <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
 3   <class name="SN.Models.User,SN.Models" table="SN_User" lazy="false">
 4     <id name="Id" column="Id" type="Int32">
 5       <generator class="native" />
 6     </id>
 7     <property name="Name" column="SName" type="String" length="20" />
 8     <property name="NickName" column="SNickName" type="String" length="20" />
 9     <property name="PassWord" column="SPassWord" type="String" length="30" />
10     <property name="IdentifyId" column="SIdentifyId" type="String" length="30" />
11     <property name="Phone" column="SPhone" type="String" length="50" />
12     <property name="Email" column="SEmail" type="String" length="50" />
13     <property name="CreateTime" column="DCreateDate" type="DateTime" />
14     <property name="Creator" column="SCreator" type="String" length="20" />
15     <property name="LastTimeLogOn" column="DLastTimeLogOn" type="DateTime" />
16   </class>
17 </hibernate-mapping>

User.cs

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5
  6 namespace SN.Models
  7 {
  8
  9
 10       [Serializable]
 11       public class User
 12       {
 13           /// <summary>
 14           /// 用户id
 15           /// </summary>
 16           public Int32 Id
 17           {
 18               get;
 19               set;
 20           }
 21
 22           /// <summary>
 23           /// 用户名,登录所用的名字
 24           /// </summary>
 25           public string Name
 26           {
 27               get;
 28               set;
 29           }
 30
 31           /// <summary>
 32           /// 真实姓名
 33           /// </summary>
 34           public string NickName
 35           {
 36               get;
 37               set;
 38           }
 39
 40           /// <summary>
 41           /// 密码
 42           /// </summary>
 43           public string PassWord
 44           {
 45               get;
 46               set;
 47           }
 48
 49           /// <summary>
 50           /// 创建日期
 51           /// </summary>
 52           public DateTime CreateTime
 53           {
 54               get;
 55               set;
 56           }
 57
 58           /// <summary>
 59           /// 创建人
 60           /// </summary>
 61           public string Creator
 62           {
 63               get;
 64               set;
 65           }
 66
 67           /// <summary>
 68           /// Email
 69           /// </summary>
 70           public string Email
 71           {
 72               get;
 73               set;
 74           }
 75
 76           /// <summary>
 77           /// 联系电话
 78           /// </summary>
 79           public string Phone
 80           {
 81               get;
 82               set;
 83           }
 84
 85           /// <summary>
 86           /// 身份证
 87           /// </summary>
 88           public string IdentifyId
 89           {
 90               get;
 91               set;
 92           }
 93
 94           /// <summary>
 95           /// 最后一次登录时间
 96           /// </summary>
 97           public DateTime LastTimeLogOn
 98           {
 99               get;
100               set;
101           }
102       }
103
104 }

4.SN.Dao

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

文件夹:Dao(UserDao.cs)

文件夹:IDao(IUserDao.cs)

文件:HibernateDao.cs

Objects.xml

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

SpringNHibernate.xml

 1 <?xml version="1.0" encoding="utf-8" ?>
 2 <objects xmlns="http://www.springframework.net"
 3          xmlns:db="http://www.springframework.net/database"
 4          xmlns:tx="http://www.springframework.net/tx"
 5          >
 6   <!--描述-->
 7   <description>
 8     数据访问的配置信息
 9   </description>
10
11   <!-- 通过主应用程序的上下文配置文件引用 -->
12   <object type="Spring.Objects.Factory.Config.PropertyPlaceholderConfigurer, Spring.Core">
13     <property name="ConfigSections" value="databaseSettings"/>
14   </object>
15   <!--  connectionString=""-->
16   <!-- 数据库的配置 -->
17   <db:provider id="DbProvider"
18                   provider="System.Data.SqlClient"
19                   connectionString="server=${db.server};Database=${db.database};uid=${db.user};pwd=${db.password}"
20               />
21
22   <!-- NHibernate 配置 -->
23
24   <!-- 可以通过 name 为其指定别名 name="SessionFactory" -->
25   <object id="NHibernateSessionFactory"
26           type="Spring.Data.NHibernate.LocalSessionFactoryObject,Spring.Data.NHibernate4" >
27
28     <!-- 关于数据库连接的配置,直接使用 DbProvider 中的设置,这样,不需要为 Hibernate 再提供连接串和驱动 -->
29     <property name="DbProvider" ref="DbProvider"/>
30
31     <!-- 包含有映射文件的程序集,需要分析的hbm程序集名称 -->
32     <property name="MappingAssemblies">
33       <list>
34         <value>SN.Models</value>
35       </list>
36     </property>
37
38     <!-- 其他的参数 -->
39     <property name="HibernateProperties">
40       <dictionary>
41         <!-- 方言 -->
42         <entry key="dialect" value="NHibernate.Dialect.MsSql2008Dialect"/>
43         <entry key="use_proxy_validator" value="false" />
44         <entry key="show_sql" value="true"/>
45       </dictionary>
46     </property>
47
48     <!-- 必须增加此项说明,与 Spring 的声明式事务集成 -->
49     <property name="ExposeTransactionAwareSessionFactory" value="true" />
50
51   </object>
52 </objects>

UserDao.cs

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using Spring.Stereotype;
 6 using Spring.Transaction.Interceptor;
 7 using SN.Models;
 8
 9 namespace SN.Dao
10 {
11      [Repository]
12     public class UserDao : HibernateDao, IUserDao
13     {
14
15        public IList<User> GetAll()
16        {
17            return GetAll<User>();
18        }
19        public IList<User> GetAllUsers()
20        {
21          return GetAll<User>();
22          //return new List<User> { new User { Id = 1, Name = "sulin" } };
23        }
24     }
25 }

IUserDao.cs

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using SN.Models;
 6 namespace SN.Dao
 7 {
 8    public interface IUserDao
 9     {
10        IList<User> GetAllUsers();
11     }
12 }

HibernateDao.cs

 1 using NHibernate;
 2 using System;
 3 using System.Collections.Generic;
 4 using System.Linq;
 5 using System.Text;
 6
 7 namespace SN.Dao
 8 {
 9     public abstract class HibernateDao
10     {
11         private ISessionFactory sessionFactory;
12
13         /// <summary>
14         /// Session factory for sub-classes.
15         /// </summary>
16         public ISessionFactory SessionFactory
17         {
18             protected get { return sessionFactory; }
19             set { sessionFactory = value; }
20         }
21
22         /// <summary>
23         /// Get‘s the current active session. Will retrieve session as managed by the
24         /// Open Session In View module if enabled.
25         /// </summary>
26         protected ISession CurrentSession
27         {
28             get { return sessionFactory.GetCurrentSession(); }
29         }
30         protected IList<T> GetAll<T>() where T : class
31         {
32             ICriteria criteria = CurrentSession.CreateCriteria<T>();
33             return criteria.List<T>();
34         }
35     }
36 }

5.SN.Servers

文件夹:Config(Servers.xml)

文件夹:Services(UserService.cs)

文件夹:IServices(IUserService.cs)

Servers.xml

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

IUserService.cs

 1 using SN.Dao;
 2 using SN.Models;
 3 using System;
 4 using System.Collections.Generic;
 5 using System.Linq;
 6 using System.Text;
 7
 8 namespace SN.Servers
 9 {
10     public interface IUserService
11     {
12         IUserDao IUser { set; get; }
13         IList<User> GetAllUsers();
14     }
15 }

UserService.cs

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5
 6 namespace SN.Servers
 7 {
 8
 9   public  class UserService:IUserService
10     {
11
12         public Dao.IUserDao IUser
13         {
14             get;
15             set;
16         }
17
18         public IList<Models.User> GetAllUsers()
19         {
20             return IUser.GetAllUsers();
21         }
22     }
23 }
时间: 2024-10-15 13:19:38

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

win2003 IIS6.0下部署asp.net MVC4

今天要把一个在.net Framework 4.5开发的一个MVC的网站迁移到一台win2003的一个服务器上,IIS是6.0版本. 服务器环境: 1.win2003企业版+SP2 2.IIS 6.0 3..net Framework 4.0(win2003不支持4.5). 环境都弄好之后开始设置IIS. 1.右键点"默认网站"->"新建"->"虚拟目录"来添加一个虚拟目录. 2.打开新建的虚拟目录的属性,在"虚拟目录&qu

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

这个项目用到了三个技术点 1.bootstap 3.0 2.asp.net mvc4 3.IBatis.Net 这个三个技术点分别解决前端界面展示.中间mvc路由控制.实体框架映射数据访问 重点分页问题花了点时间. 代码发布在GitHub上给感兴趣的人下载来学习 https://github.com/zuifengke/ChuanQI 来自为知笔记(Wiz)

无废话版本-Asp.net MVC4.0 Rasor的基本用法

最近工作有点忙,好久没写东西了!废话不多说了,进入主题! 1.在页面中输出单一变量时候,只要在C#语句之前加上@符号即可,For example: <p>Now Time:@DateTime.Now</p> 请注意,上述example中虽然使用C#语言撰写代码,但输出单一变量的时候,不需要加上分号: 2.在页面上输出一段含有空白字元或者运算子的结果时,必须在前后加上一个小括号,For example: <p> UserName:@(User.Identity.Name+

ASP.NET MVC4.0+ WebAPI+EasyUI+KnockOutJS快速开发框架 通用权限管理系统

在线演示地址:http://115.28.135.49:8099/ 1.基于 ASP.NET MVC4.0 + WebAPI + EasyUI + Knockout 的架构设计开发 2.采用MVC的框架模式,具有耦合性低.重用性高.生命周期成本低.可维护性高.有利软件工程化管理等优点 3.采用WebAPI,客户端完全摆脱了代理和管道来直接进行交互 4.采用EasyUI前台UI界面插件,可轻松的打造出功能丰富并且美观的UI界面 5.采用Knockout,,提供了一个数据模型与用户UI界面进行关联的

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

一)经过多年的实践不断优化.精心维护.运行稳定.功能完善: 能经得起不同实施策略下客户的折腾,能满足各种情况下客户的复杂需求. 二)编码实现简单易懂.符合设计模式等理念: 上手快,见效快.方便维护,能控制软件项目后期维护风险. 三)有严谨的分层理念.完全符合主流的SOA理念架构: 程序可以采用不同的实施策略.架构需求,方便维护.方便扩展. 四)符合RBAC的权限理念.同时也能满足国内小型软件项目的灵活性需求: 不仅符合国际通用标准,又能满足国内的小型软件项目的灵活设置需求. 五)不仅支持多数据库

IIS发布ASP.NET MVC4.0教程

本文主要讲解在微软的IIS Web服务器上发布ASP.NET MVC4.0的项目的方法以及注意事项. 首先介绍如何打开IIS服务器. 打开IIS 在命令行中输入 Inetmgr 既可以打开IIS了,界面如下: 再来谈谈如何查看自己的IIS版本号. IIS版本 在IIS工具的帮助下拉框中,选择 关于internet信息服务 发布 接下来就介绍如何发布ASP.NET MVC4.0项目到IIS8.5 Web服务器上的流程. 首先进入VS中,选择项目中的引用部分,全部选中,将属性中的复制本地全部设为tr

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

框架介绍: 1.基于 ASP.NET MVC4.0 + WebAPI + EasyUI + Knockout 的架构设计开发 2.采用MVC的框架模式,具有耦合性低.重用性高.生命周期成本低.可维护性高.有利软件工程化管理等优点 3.采用WebAPI,客户端完全摆脱了代理和管道来直接进行交互 4.采用EasyUI前台UI界面插件,可轻松的打造出功能丰富并且美观的UI界面 5.采用Knockout,,提供了一个数据模型与用户UI界面进行关联的高层次方式(采用行为驱动开发) 6.数据访问层采用强大的

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

Asp.Net MVC4.0 官方教程 入门指南之五--控制器访问模型数据 在这一节中,你将新创建一个新的 MoviesController类,并编写代码,实现获取影片数据和使用视图模板在浏览器中展现影片数据的功能.在进行下步之前,点击“生成应用程序“对应用程序进行编译.右键单击Controllers文件夹,新建一个名为“MoviesController ”的控制器.在创建窗口各选项如下图所示 点击添加,将创建以下文件和文件夹: 项目的 Controllers 文件夹下新增MoviesContr

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

Asp.Net MVC4.0 官方教程 入门指南之四--添加一个模型 在这一节中,你将添加用于管理数据库中电影的类.这些类是ASP.NET MVC应用程序的模型部分. 你将使用.NET Framework框架下的实体框架(Entity Framework)数据访问技术,与模型类协同工作.实体框架(常简称为EF)支持一种称之为编码先行(Code First)的开发模式.编码先行使你通过编写简单的类(简称为POCO类,全称为"plain-old CLR objects."),来创建模型对象