搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 (三)实现数据库接口层和业务逻辑层

简介: 本篇是介绍我们完成数据库接口层和业务逻辑层的接口的设计和实现。 废话不多讲,还是怎么一步一步做。 第一步:设计IDao层。在MyWeb.WebTemp.IDao项目中添加IUserDao接口。

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

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

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

 

img_1c53668bcee393edac0d7b3b3daff1ae.gif img_405b18b4b6584ae338e0f6ecaf736533.gif 代码
 
  
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项目的引用。因为我们也用到了实体类。

代码如下:

 

img_1c53668bcee393edac0d7b3b3daff1ae.gif img_405b18b4b6584ae338e0f6ecaf736533.gif 代码
 
  
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实体类。还是看代码:

 

img_1c53668bcee393edac0d7b3b3daff1ae.gif img_405b18b4b6584ae338e0f6ecaf736533.gif 代码
 
  
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项目的引用。看代码:

 

img_1c53668bcee393edac0d7b3b3daff1ae.gif img_405b18b4b6584ae338e0f6ecaf736533.gif 代码
 
  
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
}
}

当前项目的目录结构如图所示:

img_c20a513f4ad4e51c951f2348848bba71.png

 

 

 

你的业务逻辑层和数据库接口层实现了吗?

先写到这。呵呵,先回家吃饭去了。呵呵

 

 

文章索引:

搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 (一)

搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 (二)创建你的项目

搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 (三)实现数据库接口层和业务逻辑层

搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 (四)配置全攻略

搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 (五)测试你的成果

搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 (六)写在后面的话

目录
相关文章
|
9天前
|
前端开发 Java 测试技术
Java一分钟之Spring MVC:构建Web应用
【5月更文挑战第15天】Spring MVC是Spring框架的Web应用模块,基于MVC模式实现业务、数据和UI解耦。常见问题包括:配置DispatcherServlet、Controller映射错误、视图解析未设置、Model数据传递遗漏、异常处理未配置、依赖注入缺失和忽视单元测试。解决这些问题可提升代码质量和应用性能。注意配置`web.xml`、`@RequestMapping`、`ViewResolver`、`Model`、`@ExceptionHandler`、`@Autowired`,并编写测试用例。
300 3
|
7天前
|
前端开发 Java 关系型数据库
使用IDEA搭建一个Spring + AOP (权限管理 ) + Spring MVC
使用IDEA搭建一个Spring + AOP (权限管理 ) + Spring MVC
|
9天前
|
JSON 前端开发 Java
【JavaEE】让“单车变摩托”的神级框架—Spring MVC的深入讲解(下)
【JavaEE】让“单车变摩托”的神级框架—Spring MVC的深入讲解
9 0
|
9天前
|
JSON 前端开发 Java
【JavaEE】让“单车变摩托”的神级框架—Spring MVC的深入讲解(上)
【JavaEE】让“单车变摩托”的神级框架—Spring MVC的深入讲解
10 0
|
9天前
|
设计模式 前端开发 Java
初识Spring MVC
初识Spring MVC
15 0
|
9天前
|
前端开发 Java 应用服务中间件
Spring MVC框架概述
Spring MVC 是一个基于Java的轻量级Web框架,采用MVC设计模型实现请求驱动的松耦合应用开发。框架包括DispatcherServlet、HandlerMapping、Handler、HandlerAdapter、ViewResolver核心组件。DispatcherServlet协调这些组件处理HTTP请求和响应,Controller处理业务逻辑,Model封装数据,View负责渲染。通过注解@Controller、@RequestMapping等简化开发,支持RESTful请求。Spring MVC具有清晰的角色分配、Spring框架集成、多种视图技术支持以及异常处理等优点。
22 1
|
9天前
|
监控 前端开发 Java
SpringBoot与SpringMVC有哪些区别?
SpringBoot和SpringMVC是Java开发中常用的两个框架,它们都是由Spring框架所提供的,但在功能和使用方式上有着一些区别。
25 2
|
9天前
|
开发框架 前端开发 JavaScript
JavaScript云LIS系统源码ASP.NET CORE 3.1 MVC + SQLserver + Redis医院实验室信息系统源码 医院云LIS系统源码
实验室信息系统(Laboratory Information System,缩写LIS)是一类用来处理实验室过程信息的软件,云LIS系统围绕临床,云LIS系统将与云HIS系统建立起高度的业务整合,以体现“以病人为中心”的设计理念,优化就诊流程,方便患者就医。
25 0
|
9天前
|
数据采集 前端开发 Java
数据塑造:Spring MVC中@ModelAttribute的高级数据预处理技巧
数据塑造:Spring MVC中@ModelAttribute的高级数据预处理技巧
25 3
|
9天前
|
存储 前端开发 Java
会话锦囊:揭示Spring MVC如何巧妙使用@SessionAttributes
会话锦囊:揭示Spring MVC如何巧妙使用@SessionAttributes
16 1