搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 (三)实现数据库接口层和业务逻辑层(转)...
本篇是介绍我们完成数据库接口层和业务逻辑层的接口的设计和实现。
废话不多讲,还是怎么一步一步做。
第一步:设计IDao层。在MyWeb.WebTemp.IDao项目中添加IUserDao接口。代码如下:
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.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.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.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. 简介 在本篇中,我想先从全局方面介绍一下 ...
最新文章
- MYSQL密码解密函数的使用
- Visual Studio.NET
- 查询磁盘的性能(iostat)
- u盘无法复制文件进去_U盘无法复制超过4GB的大文件怎么办?
- 关于HttpWebRequest对象的KeepAlive属性
- 关于体育的python毕业设计_Python实例13:体育竞技分析
- 小汤学编程之JAVA基础day10——常用类(二):String常用方法、正则、StringBuffer和StringBuilder、Math和Random类、日期类和数字类
- win10安装python的xlrd_win10安装python的xlrd
- HDU 1251 统计难题 (Trie)
- spring切点表达式提取jdk版本与aspectjweaver版本不匹配
- linux飞行模式问题解决
- 矢量绘图设计AI 2022
- ai钢笔工具怎么描线_AI: 如何用钢笔工具画曲线
- 百度小程序如何引流?给用户带来了更便捷、更人性化的体验
- python 发送邮件
- win10环境下AndroidStudio输入法光标不跟随解决办法
- More effective C++学习总结
- Cadence Allegro恢复软件菜单栏默认设置图文教程及视频演示
- PCL最小二乘法拟合平面
- python数据分析小练习----科赛