本篇文章的目的:首先是创建解决方案。并创建相关的项目。先介绍一下项目的各自的作用:
从数据库层到表示层依次为:
数据库层:
1、接口IDao层:IDao
2、Dao层实现:HibernateDao和SqlDao
HibernateDao:由Hibernate实现的IDao部分
SqlDao:是由我们自己写sql实现的部分
业务逻辑层:
1、业务逻辑接口层:IBLL
2、业务逻辑接口的实现:BLL
3、我们把Mvc中的Model放到一个单独的项目中:Model
表示层:
就是我们的web项目。至于你想用Extjs等ui框架,那就是看你的选择了。
现在就开始我们的项目旅程。
第一步:
1、新建一个Web Mvc项目。如图所示:
2、然后依次添加类库项目。最终解决方案如下图所示:
解决方案的框架就基本有型了。不过还只是个空架子。下面我们就开始根据数据库表建立Model
在这说 一下,Model在一般的开发中,我们最好将其映射到表。因为这样一来对应于Nhibernate帮我们实现的面向对象的操作数据库就很好实现了【大家自己去体会】。
第二步:
首先看一下我们书库中的表。我准备了一个User表。下面是建表的sql语句:
CREATE TABLE Hksj_User ( Id INT IDENTITY(1,1) NOT NULL, SName NVARCHAR(20) NOT NULL, SNickName NVARCHAR(20), SPassWord NVARCHAR(30) NOT NULL, DCreateDate DATETIME , SCreator NVARCHAR(20), SEmail NVARCHAR(50), SPhone NVARCHAR(50), SIdentifyId NVARCHAR(30), DLastTimeLogOn DATETIME PRIMARY KEY CLUSTERED ( Id ASC )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] END GO --添加注释 EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'登录名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Hksj_User', @level2type=N'COLUMN',@level2name=N'SName' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'邮箱' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Hksj_User', @level2type=N'COLUMN',@level2name=N'SEmail'
数据库截图:
数据库有了,那我们就根据数据库表建立Model模型吧!
在MyWeb.WebTemp.Model中添加类文件:User.cs 代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace MyWeb.WebTemp.Model { [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; } } }
注:将User设置为public,原因就不用说了【因为在不同的程序集中引用】
先写到这,你的Model建立好了吗?