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();
}
}
}

最新文章

  1. InnoDB关键特性学习笔记
  2. phpcms v9图片生成缩略图变成黑色解决方法
  3. C# 去掉List重复元素的方法
  4. JavaScript判断数据类型
  5. JAVA中I/O流
  6. servlet实现的三种方式对比(servlet 和GenericServlet和HttpServlet)
  7. 自定义NavigationView&#39;s item 的高度
  8. struts2 I18n问题 国际化
  9. Yii 2.0: yii2-highcharts-widget创建饼状图
  10. pig询问top k,每个返回hour和ad_network_id最大的两个记录(SUBSTRING,order,COUNT_STAR,limit)
  11. python数据结构(一)------序列
  12. C++11 标准新特性: 右值引用与转移语义
  13. 《Java2 实用教程(第五版)》学习指导
  14. 一个bug分析 ----------换个角度,有另外一个天地
  15. [MySQL]增加约束键
  16. How to measure IOPS for VMware
  17. git config --global user.email
  18. C#基础笔记(第二十二天)
  19. 初识iVew table表属性
  20. php将“\\”转换成“\”的例子

热门文章

  1. C++自己用模板减少工作量
  2. SpringCloud学习笔记《---04 Hystrix---》基础篇
  3. 使用vue-cli3快速适配H5项目
  4. SG函数模板(洛谷2197nim游戏
  5. 【JZOJ2288】【BZOJ1898】【luoguP2579】沼泽鳄鱼
  6. Django项目在linux上运行
  7. c语言学习笔记 - 文件操作
  8. CobaltStrike进阶篇-批量上线
  9. 47 Majority Element II
  10. Installer - 使用Maven自动布署至外部Tomcat