搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 (三)实现数据库接口层和业务逻辑层(转)...
本篇是介绍我们完成数据库接口层和业务逻辑层的接口的设计和实现。
废话不多讲,还是怎么一步一步做。
第一步:设计IDao层。在MyWeb.WebTemp.IDao项目中添加IUserDao接口。代码如下:
![](/assets/blank.gif)
![](/assets/blank.gif)
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MyWeb.WebTemp.Model;
namespace MyWeb.WebTemp.IDao
{
public interface IUserDao
{
/// <summary>
/// 获取所有的用户
/// </summary>
/// <returns></returns>
IList<User> GetAllUsers();
/// <summary>
/// 根据id来获取用户
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
User GetUserById(int Id);
/// <summary>
/// 添加用户信息
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
bool AddUser(User user);
/// <summary>
/// 更新用户信息
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
bool UpdateUser(User user);
/// <summary>
/// 更新或者添加用户信息
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
bool AddOrUpdateUser(User user);
/// <summary>
/// 删除用户
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
bool DeleteUser(User user);
}
}
注:要添加Model项目的引用。因为我们用到了User实体类。
第二步:实现IDao设计。在MyWeb.WebTemp.HibernateDao项目中添加类文件:UserDaoHibernate.cs
在编写代码之前,我们首先要引入spring.net和Nhibernate的支持类库。我用到的所有dll,稍后将提供下载。如果你急需
可以通过邮件向我索取:malun666@126.com
另外要添加Model项目的引用。因为我们也用到了实体类。
代码如下:
![](/assets/blank.gif)
![](/assets/blank.gif)
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Spring.Data.NHibernate.Generic.Support;
using Spring.Data.NHibernate.Generic;
using SpringHiberate.dao.model;
using NHibernate;
using MyWeb.WebTemp.IDao;
namespace MyWeb.WebTemp.HibernateDao
{
public class UserDaoHibernate : HibernateDaoSupport,IUserDao
{
#region IUserDao 成员
public IList<MyWeb.WebTemp.Model.User> GetAllUsers()
{
return HibernateTemplate.LoadAll<MyWeb.WebTemp.Model.User>();
}
public MyWeb.WebTemp.Model.User GetUserById(int Id)
{
return (MyWeb.WebTemp.Model.User)HibernateTemplate.Execute(new HibernateDelegate<MyWeb.WebTemp.Model.User>(delegate(NHibernate.ISession session)
{
StringBuilder sb = new StringBuilder();
sb.Append("from User c where c.Id=?");
IQuery query = session.CreateQuery(sb.ToString());
query.SetParameter(0, Id);
return query.UniqueResult() as MyWeb.WebTemp.Model.User;
}), true);
}
public bool AddUser(MyWeb.WebTemp.Model.User user)
{
if (HibernateTemplate.Save(user) != null)
{
return true;
}
return false;
}
public bool UpdateUser(MyWeb.WebTemp.Model.User user)
{
HibernateTemplate.Update(user);
return true;
}
public bool AddOrUpdateUser(MyWeb.WebTemp.Model.User user)
{
HibernateTemplate.SaveOrUpdate(user);
return true;
}
public bool DeleteUser(MyWeb.WebTemp.Model.User user)
{
HibernateTemplate.Delete(user);
return true;
}
#endregion
}
}
这就实现了数据库接口层的基本的增删改。具体看你的应用,可以根据你的需要添加。
第三步:设计接口IBLL层【业务逻辑接口层】。在MyWeb.WebTemp.IBLL中添加类文件:IUserService
注:添加Model项目的引用。因为这一层我们用到了User实体类。还是看代码:
![](/assets/blank.gif)
![](/assets/blank.gif)
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MyWeb.WebTemp.Model;
namespace MyWeb.WebTemp.IBLL
{
public interface IUserService
{
/// <summary>
/// 获取 所有用户信息列表
/// </summary>
/// <returns></returns>
IList<User> GetAllUsers();
/// <summary>
/// 保存用户信息
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
bool UpdateUser(User user);
/// <summary>
/// 删除用户信息
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
bool DeleteUser(User user);
/// <summary>
/// 添加一个用户信息
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
bool AddUser(User user);
/// <summary>
/// 添加或者更新用户信息
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
bool UpdateOrAddUser(User user);
/// <summary>
/// 根据id来获取用户信息
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
User GetUserById(int id);
}
}
第四步:实现IBLL层。【业务逻辑接口的实现】在MyWeb.WebTemp.BLL中添加类文件:UserServiceImpl.cs
注:Impl是实现单词的缩写。同样我们要添加Model项目引用和IUserDao项目的引用。看代码:
![](/assets/blank.gif)
![](/assets/blank.gif)
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MyWeb.WebTemp.IBLL;
using MyWeb.WebTemp.IDao;
using MyWeb.WebTemp.Model;
namespace MyWeb.WebTemp.BLL
{
public class UserServiceImpl : IUserService
{
#region 属性
private IUserDao userDao;
public IUserDao UserDao
{
get { return userDao; }
set { userDao = value; }
}
#endregion
#region IUserService 成员
public IList<User> GetAllUsers()
{
return UserDao.GetAllUsers();
}
public bool UpdateUser(User user)
{
return UserDao.UpdateUser(user);
}
public bool DeleteUser(User user)
{
return UserDao.DeleteUser(user);
}
public bool AddUser(User user)
{
return UserDao.AddUser(user);
}
public bool UpdateOrAddUser(User user)
{
return UserDao.AddOrUpdateUser(user);
}
public User GetUserById(int id)
{
return UserDao.GetUserById(id);
}
#endregion
}
}
当前项目的目录结构如图所示:
你的业务逻辑层和数据库接口层实现了吗?
先写到这。呵呵,先回家吃饭去了。呵呵
原文网址:http://www.cnblogs.com/fly_dragon/archive/2010/09/06/1819547.html
转载于:https://www.cnblogs.com/lyh55/archive/2010/09/14/1825927.html
搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 (三)实现数据库接口层和业务逻辑层(转)...相关推荐
- 搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架
搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 学习网址哦: 很不错的 http://www.cnblogs.com/fly_dragon/archive/2010/ ...
- 开源框架完美组合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文双语言小型企业网站Demo项目分析
开源框架完美组合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文双语言小型企业网站Demo,这个是一个在网上流传比较多的Spri ...
- Spring.Net+NHibenate+Asp.Net mvc +ExtJs 系列 3 ----数据访问层
在上一篇中,我们已经搭建起了整个解决方案的项目,并且建好了数据库,完成了实体类和Nhibernate映射文件.在本文中,将定义数据访问接口,并利用Nhibernate实现接口,利用Spring.net ...
- Spring.net与Asp.net Mvc结合示例《转载》
一.介绍 因为项目要用到Ioc框架,所以要为Ioc框架选型,优秀的Ioc框架好几款,例如:sping.net,castle,unity--当然还不止三款,还有其它的Ioc框架,castle跟unity ...
- ASP.NET - MVC框架及搭建教程
一.MVC简介 MVC:Model-View-Controller(模型-视图-控制器),MVC是一种软件开发架构模式. 1.模型(Model) 模型对象是实现应用程序数据域逻辑的应用程序部件. 通常 ...
- ASP.NET MVC框架(第一部分)
[原文地址]ASP.NET MVC Framework (Part 1) [原文发表日期] Tuesday, November 13, 2007 3:45 AM 两个星期前, 我在博客里讨论了ASP. ...
- ASP.NET MVC 框架!
[原文地址] ASP.NET MVC Framework [原文发表日期] Sunday, October 14, 2007 10:41 PM 过去的几年里,很多人要求ASP.NET的一件事情就是对 ...
- ASP.NET MVC 框架
ASP.NET MVC 框架 [原文地址]ASP.NET MVC Framework [原文发表日期] Sunday, October 14, 2007 10:41 PM 过去的几年里,很多人要求AS ...
- 基于ASP.NET MVC框架开发Web论坛应用程序
我想通过本系列文章从头到尾构建一个完整的ASP.NET MVC论坛应用程序,最终的目的是探讨和推动使用ASP.NET MVC框架构建应用程序的最佳实践. 1. 简介 在本篇中,我想先从全局方面介绍一下 ...
最新文章
- WPF判断两个时间大小避免误差
- 腾讯Angel升级:加入图算法,支持十亿节点、千亿边规模!中国首个毕业于Linux AI基金会的开源项目...
- 面试官:你们Redis故障过吗,怎么解决?
- TCP数据流稳定性--TCP分片,重组及乱序
- python项目归纳总结-这4个Python实战项目,让你瞬间读懂Python!
- Python练习 | 初识Python、数据类型、基本语句
- VTK:Rendering之StripFran
- 51. 顺时针打印矩阵[print matrix in clockwise direction]
- CSS3实现一束光划过图片、和文字特效
- python定义二维数组_在python中定义二维数组
- 对弈类游戏的人工智能(3)--博弈树优化
- python画五角星代码_Python第八课 绘制五角星1.0
- Java 非小数BigDecimal转换为Integer
- GoldenGate新增表
- sklearn文本特征提取
- 国家开放大学2021春1062文学英语赏析题目
- storm风暴英雄 tempo_《风暴英雄》Tempo Storm天梯环境速报
- oracle yum配置本地源,oel 7 本地yum源配置
- DOSBox常用快捷键
- 专题3:Django配置分布式路由