本篇是介绍我们完成数据库接口层和业务逻辑层的接口的设计和实现。

废话不多讲,还是怎么一步一步做。

第一步:设计IDao层。在MyWeb.WebTemp.IDao项目中添加IUserDao接口。代码如下:

代码

using System;
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项目的引用。因为我们也用到了实体类。

代码如下:

代码

using System;
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实体类。还是看代码:

代码

using System;
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项目的引用。看代码:

代码

using System;
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 框架 (三)实现数据库接口层和业务逻辑层(转)...相关推荐

  1. 搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架

    搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 学习网址哦: 很不错的 http://www.cnblogs.com/fly_dragon/archive/2010/ ...

  2. 开源框架完美组合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文双语言小型企业网站Demo项目分析

    开源框架完美组合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文双语言小型企业网站Demo,这个是一个在网上流传比较多的Spri ...

  3. Spring.Net+NHibenate+Asp.Net mvc +ExtJs 系列 3 ----数据访问层

    在上一篇中,我们已经搭建起了整个解决方案的项目,并且建好了数据库,完成了实体类和Nhibernate映射文件.在本文中,将定义数据访问接口,并利用Nhibernate实现接口,利用Spring.net ...

  4. Spring.net与Asp.net Mvc结合示例《转载》

    一.介绍 因为项目要用到Ioc框架,所以要为Ioc框架选型,优秀的Ioc框架好几款,例如:sping.net,castle,unity--当然还不止三款,还有其它的Ioc框架,castle跟unity ...

  5. ASP.NET - MVC框架及搭建教程

    一.MVC简介 MVC:Model-View-Controller(模型-视图-控制器),MVC是一种软件开发架构模式. 1.模型(Model) 模型对象是实现应用程序数据域逻辑的应用程序部件. 通常 ...

  6. ASP.NET MVC框架(第一部分)

    [原文地址]ASP.NET MVC Framework (Part 1) [原文发表日期] Tuesday, November 13, 2007 3:45 AM 两个星期前, 我在博客里讨论了ASP. ...

  7. ASP.NET MVC 框架!

    [原文地址] ASP.NET MVC Framework  [原文发表日期] Sunday, October 14, 2007 10:41 PM 过去的几年里,很多人要求ASP.NET的一件事情就是对 ...

  8. ASP.NET MVC 框架

    ASP.NET MVC 框架 [原文地址]ASP.NET MVC Framework [原文发表日期] Sunday, October 14, 2007 10:41 PM 过去的几年里,很多人要求AS ...

  9. 基于ASP.NET MVC框架开发Web论坛应用程序

    我想通过本系列文章从头到尾构建一个完整的ASP.NET MVC论坛应用程序,最终的目的是探讨和推动使用ASP.NET MVC框架构建应用程序的最佳实践. 1. 简介 在本篇中,我想先从全局方面介绍一下 ...

最新文章

  1. WPF判断两个时间大小避免误差
  2. 腾讯Angel升级:加入图算法,支持十亿节点、千亿边规模!中国首个毕业于Linux AI基金会的开源项目...
  3. 面试官:你们Redis故障过吗,怎么解决?
  4. TCP数据流稳定性--TCP分片,重组及乱序
  5. python项目归纳总结-这4个Python实战项目,让你瞬间读懂Python!
  6. Python练习 | 初识Python、数据类型、基本语句
  7. VTK:Rendering之StripFran
  8. 51. 顺时针打印矩阵[print matrix in clockwise direction]
  9. CSS3实现一束光划过图片、和文字特效
  10. python定义二维数组_在python中定义二维数组
  11. 对弈类游戏的人工智能(3)--博弈树优化
  12. python画五角星代码_Python第八课 绘制五角星1.0
  13. Java 非小数BigDecimal转换为Integer
  14. GoldenGate新增表
  15. sklearn文本特征提取
  16. 国家开放大学2021春1062文学英语赏析题目
  17. storm风暴英雄 tempo_《风暴英雄》Tempo Storm天梯环境速报
  18. oracle yum配置本地源,oel 7 本地yum源配置
  19. DOSBox常用快捷键
  20. 专题3:Django配置分布式路由

热门文章

  1. 20多个Maven命令和选项(备忘单)
  2. java文件中获取创建日期_如何在Java中获取文件的上次修改日期
  3. scala代码示例_Scala元组和地图示例
  4. C++的学习(十一)继承
  5. 解决ubuntu下arduino IDE的Serial Port无法选择问题
  6. 人工智能时代职教教师能力提升的路径
  7. 人工智能影响学习的5种方式
  8. 腾讯云数据库智能化海量运维的建设与实践
  9. Swift - 19 - 字典的初始化
  10. Redis bind用法