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 ...
随机推荐
- 线性dp——求01串最大连续个数不超过k的方案数,cf1027E 好题!
只写了和dp有关的..博客 https://www.cnblogs.com/huyufeifei/p/10351068.html 关于状态的继承和转移 这题的状态转移要分开两步来做: 1.继承之前状态 ...
- Java写爬虫代码时报org.apache.http.client.ClientProtocolException: URI does not specify a valid host异常的处理
异常原因是url写错,导致无法解析 比如:这个报错就是因为写了两个“http:”导致该无法解析
- 密码学笔记(5)——Rabin密码体制和语义安全性
一.Rabin密码体制 Rabin密码体制是RSA密码体制的一种,假定模数$n=pq$不能被分解,该类体制对于选择明文攻击是计算安全的.因此,Rabin密码体制提供了一个可证明安全的密码体制的例子:假 ...
- 《DSP using MATLAB》Problem 8.3
代码: %% ------------------------------------------------------------------------ %% Output Info about ...
- springmvc-环境配置-架构-配合mybatis-参数绑定
1.1. Spring入门 1.1.1. Springmvc是什么 Spring web mvc和Struts2都属于表现层的框架,它是Spring框架的一部分,我们可以从Spring的整体结构中看得 ...
- mybatis使用Example进行条件查询
参考: https://www.cnblogs.com/zhemeban/p/7183061.html Example类是什么? Example类指定如何构建一个动态的where子句. 表中的每个no ...
- Windows API 23 篇 WTSQuerySessionInformation
函数原型:BOOLWINAPIWTSQuerySessionInformationW( IN ...
- Codeigniter 数据库操作事务情况下获取不到last_insert_id()
开发中,数据库Insert使用了事务,如果 $this->db->insert_id() 放在 $this->db->trans_complete(); 这句语句之后,$thi ...
- Drupal创建Omega 4.x 子主题layout笔记
Adding a new region to your Omega 4.0 subtheme (Drupal) Drupal: Creating a custom layout with Omega ...
- 用JSON将一个字典写入到文件,通过loads()将JSON字符串在转换为本来的类型
通过dumps将字典转换为JSON的字符串,存到磁盘里面