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
<?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>
/// </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 一的更多相关文章
- Spring.Net2.0+NHibernate4.0 +Asp.Net Mvc4 二
6.SN.Controllers 文件夹Config(Controllers.xml) 文件夹Controllers(TestController.cs) Controllers.xml <?x ...
- 使用bootstrap+asp.net mvc4+IBatis.Net实现的小程序
这个项目用到了三个技术点 1.bootstap 3.0 2.asp.net mvc4 3.IBatis.Net 这个三个技术点分别解决前端界面展示.中间mvc路由控制.实体框架映射数据访问 重点分页问 ...
- SNF快速开发平台3.0之BS页面展示和九大优点-部分页面显示效果-Asp.net+MVC4.0+WebAPI+EasyUI+Knockout
一)经过多年的实践不断优化.精心维护.运行稳定.功能完善: 能经得起不同实施策略下客户的折腾,能满足各种情况下客户的复杂需求. 二)编码实现简单易懂.符合设计模式等理念: 上手快,见效快.方便维护,能 ...
- SNF快速开发平台3.0之-界面个性化配置+10种皮肤+7种菜单-Asp.net+MVC4.0+WebAPI+EasyUI+Knockout
一.个性配置-首页:可以进行拖动保存配置,下次登录时就会按配置的进行加载 二.个人配置页面 7种菜单用户可自定义配置,和预览效果 10种皮肤自定义配置,和预览效果 皮肤和菜单可以随意组合-部分截图: ...
- 建筑材料系统 ASP.NET MVC4.0 + WebAPI + EasyUI + Knockout 的架构设计开发
框架介绍: 1.基于 ASP.NET MVC4.0 + WebAPI + EasyUI + Knockout 的架构设计开发 2.采用MVC的框架模式,具有耦合性低.重用性高.生命周期成本低.可维护性 ...
- 利用CSS预处理技术实现项目换肤功能(less css + asp.net mvc4.0 bundle)
一.背景 在越来越重视用户体验的今天,换肤功能也慢慢被重视起来.一个web系统用户可以选择一个自己喜欢的系统主题,在用户眼里还是会多少加点分的.我们很开心的是easyui v1.3.4有自带defau ...
- Asp.Net MVC4.0 官方教程 入门指南之五--控制器访问模型数据
Asp.Net MVC4.0 官方教程 入门指南之五--控制器访问模型数据 在这一节中,你将新创建一个新的 MoviesController类,并编写代码,实现获取影片数据和使用视图模板在浏览器中展现 ...
- Asp.Net MVC4.0 官方教程 入门指南之四--添加一个模型
Asp.Net MVC4.0 官方教程 入门指南之四--添加一个模型 在这一节中,你将添加用于管理数据库中电影的类.这些类是ASP.NET MVC应用程序的模型部分. 你将使用.NET Framewo ...
- Asp.Net MVC4.0 官方教程 入门指南之三--添加一个视图
Asp.Net MVC4.0 官方教程 入门指南之三--添加一个视图 在本节中,您需要修改HelloWorldController类,从而使用视图模板文件,干净优雅的封装生成返回到客户端浏览器HTML ...
随机推荐
- 线性回归代码实现(matlab)
1 代价函数实现(cost function) function J = computeCost(X, y, theta) %COMPUTECOST Compute cost for linear r ...
- Cutting Game
Cutting Game 刚开始有一\(n\times m\)的矩形网格纸,双方轮流操作,剪网格纸,对于任意一个局面而言,你可以选择其中一张网格纸,把它剪成两个长宽都是整数的网格纸,剪出\(1\tim ...
- Mysql 数据库crash恢复
之前搭建的ghost博客比较坑,修改comment之后重启数据丢了,对node不熟悉,所以就切换回到wordpress了. 回滚快照之后发现数据库crash了,提示如下信息 2016-06-15 23 ...
- HTML - 图片标签相关
<html> <head></head> <body> <!-- src : 图片的路径 (本地资源路径, 网络资源路径) title : 图片的 ...
- Flask从入门到入土
一.flask介绍 Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对 ...
- vue-cli新手总结
项目中需要用到vue-cli脚手架来搭建前端框架,对于vue小白,总结一下自己遇到的问题以及解决方案,还要学习的地方有很多. vue-cli安装下载网上有很多教程,但对于新手而言,有些地方需要自己摸索 ...
- CF402D 【Upgrading Array】
题目链接: CF402D 题目分析: 首先考虑一下怎么求每个数的分数.把每个数分解到最后会发现它的坏质因子对它分数的贡献是\(-1\),好质因子对它分数的贡献是\(1\),那么最后的分数就是好质因数- ...
- npm 安装vue 报错Failed at the chromedriver@2.34.0 install script 'node install.js'
提示版本不够,后来百度到,在你的vue项目包下执行: npm install chromedriver --chromedriver_cdnurl=http://cdn.npm.taobao.org/ ...
- 最新MySQL5.7.3.0版本安装(图文版本)
转自:http://www.myexception.cn/mysql/1609536.html 可以从http://dev.mysql.com/downloads/下载MySQL服务器安装软件包,我下 ...
- 左神算法进阶班5_4设计可以变更的缓存结构(LRU)
[题目] 设计一种缓存结构,该结构在构造时确定大小,假设大小为K,并有两个功能: set(key, value):将记录(key, value)插入该结构. get(key):返回key对应的valu ...