搭建你的Mvc 框架

合集下载

mvc三层架构设计说明和描述

mvc三层架构设计说明和描述

mvc三层架构设计说明和描述MVC是一种通用的三层架构设计模式,即Model-View-Controller(模型-视图-控制器),被广泛应用于软件开发中。

下面将详细介绍MVC三层架构设计模式的具体说明和描述。

1. 视图层(View Layer)视图层是用户与应用程序之间的交互界面,负责展示数据和实现用户交互。

视图层一般包括用户界面和数据展示两个部分。

用户界面用来接收用户的输入操作和指令;而数据展示则是用来展示数据结果的。

视图层是一个由HTML、CSS、Javascript等技术实现的可视化界面,用于将用户的动作和数据传递给控制器。

2. 模型层(Model Layer)模型层负责管理数据和业务逻辑,是整个应用程序核心的数据存储和处理中心,用于处理存储与管理数据的相关操作。

在此层上对于数据实体进行各种操作,比如增添、修改、删除等,同时还可以在此层进行数据的验证。

模型层通常由数据访问对象(DAO)、数据加载器、数据检索器、业务逻辑层(BOL)、数据抽象和其他与数据和业务有关的软件实现组成。

3. 控制层(Controller Layer)控制层负责维护模型和视图的联系,将用户输入的指令转换成对应的建模操作,然后将处理好的数据返回给视图层展示。

控制层包括了两个主要模块,分别是前端控制器和后端控制器。

前端控制器主要负责用户请求的拦截和路由以及页面的定向;而后端控制器负责具体业务处理的实现。

MVC三层架构设计模式的优势:1.项目结构清晰MVC三层架构将应用程序划分为三个不同的部分,这使得开发人员明确了软件的结构,避免了单一文件中的代码混乱所带来的问题。

2.便于维护和扩展MVC三层架构将应用程序的不同部分分离出来,可以单独进行维护和扩展。

这样,当我们需要更改应用程序的某个部分时,只需关注该部分的代码,而不会影响其他部分的稳定性。

3.增强开发效率MVC三层架构可以通过工具自动生成代码,这样可以减少开发人员的工作量。

MVC架构模式实例

MVC架构模式实例

MVC架构模式实例⼀、简介 什么是MVC呢?MVC架构模式,也就是Model View Controller模式。

它是⼀种软件设计典范,⽤⼀种业务逻辑、数据、界⾯显⽰分离的⽅法组织代码,将业务逻辑聚集到⼀个部件⾥⾯,在改进和个性化定制界⾯及⽤户交互的同时,不需要重新编写业务逻辑。

MVC被独特的发展起来⽤于映射传统的输⼊、处理和输出功能在⼀个逻辑的图形化⽤户界⾯的结构中。

说起来好像是很复杂,但是我对它的理解也就是各⾃处理⾃⼰的任务。

模型:负责封装并实现应⽤的具体功能。

可以实现系统中的业务逻辑,通常可以⽤JavaBean来实现。

视图:⽤于与⽤户的交互。

⽤来将模型的内容展现给⽤户。

⽤户可以通过视图来请求模型进⾏更新。

视图从模型获得要展⽰的数据,然后⽤⾃⼰的⽅式展⽰给⽤户,相当于提供页⾯来与⽤户进⾏⼈机交互。

⽐如⽤户在登陆注册界⾯完成信息的填报后点击确定,由此来向控制器发出这个请求。

控制器:是Model与View之间沟通的桥梁。

⽤来控制应⽤程序的流程和处理视图所发出的请求。

当控制器接收到⽤户的请求后,会将⽤户的数据和模型相映射,也就是调⽤模型来实现⽤户请求的功能。

然后控制器会选择⽤于响应的视图,把模型更新后的数据展⽰给⽤户。

MVC模式的这三个部分的职责⾮常明确,⽽且相互分离,因此每个部分都可以独⽴地改变⽽不影响其他部分,从⽽⼤⼤提⾼应⽤的灵活性和重⽤性。

⼆、⽬的 使⽤MVC的⽬的是将Model和View实现代码分离,也就是前台html表现层和后台php逻辑层分离。

这样做便于开发,代码优化,界⾯交互性好。

归根结底,其⽬的就是便宜项⽬开发。

三、特点 MVC重要特点就是两种分离:1.视图和数据模型的分离:使⽤不同的视图对相同的数据进⾏展⽰;分离可视和不可视的组件,能够对模型进⾏独⽴测试。

因为分离了可视组件减少了外部依赖利于测试。

(数据库也是⼀种外部组件)2.视图和表现逻辑(Controller)的分离:Controller是⼀个表现逻辑的组件,并⾮⼀个业务逻辑组件。

SpringMVC框架搭建流程(完整详细版)

SpringMVC框架搭建流程(完整详细版)

SpringMVC框架搭建流程(完整详细版)SpringMVC框架搭建流程开发过程1)配置DispatcherServlet前端控制器2)开发处理具体业务逻辑的Handler(@Controller、 @RequestMapping)3) xml配置⽂件配置controller扫描,配置springmvc三⼤件4)将xml⽂件路径告诉springmvc(DispatcherServlet)详细流程:创建⽬录新建maven项⽬,注意选择webapp⾻架。

创建成功之后会发现没有src等⽬录,这些需要我们⼿动创建:在src下⾯新建main,main下⾯新建java⽬录,选择java⽬录,右键,在main下⾯继续新建resource⽬录,选择resource⽬录,右键,pom.xmlpom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="/POM/4.0.0"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion><groupId></groupId><artifactId>springmvc-demo</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><piler.source>11</piler.source><piler.target>11</piler.target></properties><dependencies><!--引⼊spring webmvc的依赖--><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.1.12.RELEASE</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><port>8080</port><path>/</path></configuration></plugin></plugins></build></project>注意Tomcat7插件是⽤来运⾏项⽬的,右侧运⾏:springmvc相关配置main⽂件夹下⾯新建webapp⽂件夹,webapp下⾯新建WEB-INF,下⾯新建web.xml<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""/dtd/web-app_2_3.dtd" ><web-app><display-name>Archetype Created Web Application</display-name><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><!--⽅式⼀:带后缀,⽐如*.action *.do *.aaa该种⽅式⽐较精确、⽅便,在以前和现在企业中都有很⼤的使⽤⽐例⽅式⼆:/ 不会拦截 .jsp,但是会拦截.html等静态资源(静态资源:除了servlet和jsp之外的js、css、png等)为什么配置为/ 会拦截静态资源因为tomcat容器中有⼀个web.xml(⽗),你的项⽬中也有⼀个web.xml(⼦),是⼀个继承关系⽗web.xml中有⼀个DefaultServlet, url-pattern 是⼀个 /此时我们⾃⼰的web.xml中也配置了⼀个 / ,覆写了⽗web.xml的配置为什么不拦截.jsp呢?因为⽗web.xml中有⼀个JspServlet,这个servlet拦截.jsp⽂件,⽽我们并没有覆写这个配置,所以springmvc此时不拦截jsp,jsp的处理交给了tomcat如何解决/拦截静态资源这件事?⽅式三:/* 拦截所有,包括.jsp--><!--拦截匹配规则的url请求,进⼊springmvc框架处理--><url-pattern>/</url-pattern></servlet-mapping></web-app>⾥⾯配置了springmvc相关的配置,引⼊了springmvc.xml:在resource⽬录下新建springmvc.xml:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xmlns:mvc="/schema/mvc"xsi:schemaLocation="/schema/beanshttps:///schema/beans/spring-beans.xsd/schema/contexthttps:///schema/context/spring-context.xsd/schema/mvchttps:///schema/mvc/spring-mvc.xsd"><!--开启controller扫描--><context:component-scan base-package=".controller"/><!--配置springmvc的视图解析器--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/"/><property name="suffix" value=".jsp"/></bean><!--⾃动注册最合适的处理器映射器,处理器适配器(调⽤handler⽅法)--><mvc:annotation-driven/></beans>在java⽬录下新建包.controller,下⾯新建DemoController:package .controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.servlet.ModelAndView;import java.util.Date;/*** @author lyj* @Title: DemoController* @ProjectName springmvc-demo* @Description: TODO* @date 2020/6/9 21:21*/@Controller@RequestMapping("/demo")public class DemoController {/*** http://localhost:8080/demo/handle01*/@RequestMapping("/handle01")public ModelAndView handle01(){Date date=new Date();ModelAndView modelAndView=new ModelAndView();modelAndView.addObject("date",date);modelAndView.setViewName("success");return modelAndView;}}在WEB-INF下⾯新建jsp⽂件夹,下⾯新建success.jsp:<%@ page language="java" isELIgnored="false" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <html lang="en"><head><meta charset="UTF-8"><title>Title</title></head><body>当前时间 ${date}</body></html>完毕后整个项⽬结构如下:测试:浏览器访问:。

mvc框架的原理

mvc框架的原理

mvc框架的原理MVC框架的原理MVC(Model-View-Controller)是一种软件设计模式,被广泛应用于Web开发中。

它的核心原理是将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。

这种分离的架构使得代码的重用、维护和扩展更加容易。

1. 模型(Model)模型是MVC框架中的数据层,负责处理应用程序的数据逻辑。

它包含了数据的定义、存储和访问方法。

模型能够独立于视图和控制器存在,在不同的视图和控制器之间共享数据。

模型的设计要求高内聚、低耦合,以便于模块的独立开发和测试。

2. 视图(View)视图是MVC框架中的用户界面层,负责展示模型中的数据给用户。

它通常是由HTML、CSS和JavaScript组成的,用于呈现数据和接收用户的输入。

视图应该只负责数据的展示,而不涉及数据的处理逻辑。

通过与控制器的交互,视图能够获取模型中的数据,并将其呈现给用户。

3. 控制器(Controller)控制器是MVC框架中的逻辑层,负责接收用户的输入并处理相应的业务逻辑。

它从视图中接收用户的请求,然后根据请求的类型调用相应的模型方法进行数据处理。

处理完数据后,控制器将结果传递给视图进行显示。

控制器起到了模型和视图之间的桥梁作用,协调两者之间的交互。

MVC框架的工作流程如下:1. 用户通过视图与应用程序进行交互,发送请求。

2. 视图将请求传递给控制器。

3. 控制器接收到请求后,根据请求的类型调用相应的模型方法进行数据处理。

4. 模型处理完数据后,将结果返回给控制器。

5. 控制器将结果传递给视图。

6. 视图根据控制器传递的结果进行数据展示给用户。

MVC框架的优点有:1. 分离关注点:MVC框架将应用程序的不同功能分离到不同的模块中,使得代码更加易于理解和维护。

开发人员可以专注于特定的领域,提高开发效率。

2. 可扩展性:由于MVC框架的松耦合设计,可以方便地对模型、视图和控制器进行扩展和替换,以满足不同的需求。

MVC三层架构范文

MVC三层架构范文

MVC三层架构范文MVC(Model-View-Controller)是一种软件设计模式,用于将应用程序的逻辑分为三个不同的组件:模型(Model),视图(View)和控制器(Controller)。

这种架构模式在软件开发中被广泛应用,特别是在Web应用程序开发中。

1. 模型(Model)层:模型层负责管理应用程序的数据和业务逻辑。

它包括与数据库交互的代码、数据验证和处理的代码等。

模型层通过定义数据的结构和规则,为其他两个组件提供数据。

模型层具有以下几个主要的特点:-数据管理:模型层负责管理应用程序的数据,包括数据的读取、存储和更新等操作。

-业务逻辑:模型层包含应用程序的业务逻辑,例如数据的校验、数据关联和计算等。

-数据触发:当数据发生变化时,模型层负责触发事件通知视图层和控制器层,以便更新视图和处理相关的业务逻辑。

2. 视图(View)层:视图层是应用程序的用户界面,负责将数据显示给用户,并接收用户的输入。

它通常是由HTML、CSS、JavaScript等技术实现的。

视图层具有以下几个主要的特点:-数据展示:视图层负责将数据以适当的方式展示给用户,例如在界面上显示数据表格、图表等。

-用户输入:视图层接收用户的输入,并将输入传递给控制器层处理。

- 交互效果:视图层可以通过JavaScript等技术实现交互效果,例如表单验证、页面动画等。

3. 控制器(Controller)层:控制器层负责处理应用程序的逻辑流程,包括接收用户的输入、处理业务逻辑、更新模型层和刷新视图层等。

控制器层具有以下几个主要的特点:-用户输入处理:控制器层接收用户的输入,并根据输入执行相应的业务逻辑。

-业务处理:控制器层负责处理应用程序的业务逻辑,例如数据校验、数据处理和数据关联等。

-视图通知:当模型层的数据发生变化时,控制器层负责更新视图层的显示,以保持界面的同步。

MVC架构模式的优势包括以下几个方面:1.松耦合:MVC将应用程序的不同模块分开,并通过定义清晰的接口进行交互,使得每个模块的开发和测试都可以独立进行,降低了模块之间的耦合度。

python pyqt6 mcv架构 实例

python pyqt6 mcv架构 实例

python pyqt6 mcv架构实例当使用Python和PyQt6进行MVC(Model-View-Controller)架构的设计时,我们可以将应用程序划分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。

下面是一个简单的实例,演示了如何使用PyQt6实现MVC架构。

首先,我们定义模型(Model)。

模型负责存储和管理应用程序的数据。

在这个例子中,我们创建一个简单的模型类,用于存储一个字符串数据。

pythonclass MyModel:def __init__(self):self.data = "Initial data"def setData(self, new_data):self.data = new_datadef getData(self):return self.data接下来,我们定义视图(View)。

视图负责显示模型的数据,并提供用户界面供用户交互。

在这个例子中,我们使用PyQt6创建一个简单的窗口,并在其中添加一个文本框来显示模型数据。

pythonfrom PyQt6.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabelclass MyView(QWidget):def __init__(self, model):super().__init__()self.model = modelself.initUI()def initUI(self):layout = QVBoxLayout()bel = QLabel(self)layout.addWidget(bel)self.setLayout(layout)self.updateLabel()def updateLabel(self):bel.setText(self.model.getData())最后,我们定义控制器(Controller)。

flask前后端分离mvc项目结构

flask前后端分离mvc项目结构

flask前后端分离mvc项目结构Flask是一个轻量级的Python Web框架,提供了简单易用的方式来构建Web应用程序。

在Flask中,前后端分离的MVC项目结构是一种常见的开发模式。

本文将介绍如何使用Flask搭建前后端分离的MVC项目结构。

一、前后端分离的概念前后端分离是指将Web应用程序的前端(即用户界面)与后端(即数据处理和业务逻辑)分离开发。

前端主要负责展示数据和与用户的交互,后端主要负责处理数据和业务逻辑。

前后端分离的好处是可以提高开发效率和灵活性,使前后端开发人员可以并行开发,减少耦合性。

二、MVC架构模式MVC(Model-View-Controller)是一种常见的软件架构模式,用于组织代码和实现业务逻辑。

在MVC模式中,应用程序被分为三个部分:模型(Model)、视图(View)和控制器(Controller)。

1. 模型(Model):负责处理数据和业务逻辑,与数据库进行交互。

在Flask中,可以使用SQLAlchemy等ORM工具来简化数据库操作。

2. 视图(View):负责展示数据和与用户的交互。

在前后端分离的项目中,视图主要负责返回JSON或者HTML等数据给前端。

3. 控制器(Controller):负责接收用户的请求,处理请求并调用模型和视图来完成相应的操作。

在Flask中,控制器可以使用Flask的路由系统来定义URL和函数之间的映射关系。

三、前后端分离的MVC项目结构在Flask中,可以按照以下的项目结构来组织前后端分离的MVC项目:1. 创建一个根目录,用于存放整个项目,例如名为"myproject"。

2. 在根目录下创建一个"backend"目录,用于存放后端代码。

在"backend"目录下创建以下文件和目录:- "app.py":Flask应用程序的入口文件,用于创建Flask应用和定义路由。

Web前端开发实训案例教程初级前端框架的MVVM架构与设计模式

Web前端开发实训案例教程初级前端框架的MVVM架构与设计模式

Web前端开发实训案例教程初级前端框架的MVVM架构与设计模式Web前端开发实训案例教程初级前端框架的MVVM架构与设计模式在当今的互联网时代,网页开发越来越受到人们的重视。

随着Web技术的进步,前端开发也变得越来越重要。

而作为前端开发人员,了解和掌握前端框架以及设计模式是非常重要的。

本教程将以实际案例为基础,分享初级前端框架中的MVVM架构与设计模式。

一. MVVM架构简介MVVM是Model-View-ViewModel的缩写,它是一种前端架构模式。

所谓MVVM,就是将应用程序分为三个部分:模型(Model)、视图(View)和视图模型(ViewModel)。

模型代表数据和业务逻辑,视图负责显示用户界面,而视图模型则是视图和模型之间的桥梁。

MVVM可以有效地将前端开发的逻辑与界面进行分离,提高开发效率和代码的可维护性。

二. MVVM的核心要素1. 数据绑定:MVVM框架通过双向数据绑定,实现了数据模型和视图之间的自动同步。

当模型的数据变化时,视图会自动更新;当用户操作视图时,模型的数据也会随之更新。

2. 命令(Command):命令模式在MVVM架构中起到了重要的作用。

通过命令模式,我们可以将用户的操作逻辑封装成命令对象,方便统一管理和处理用户的操作。

3. 数据模型:数据模型是MVVM框架中负责处理数据和业务逻辑的部分。

在实际开发中,我们可以通过Ajax请求获取数据或者通过后端接口进行数据交互。

4. 视图模型:视图模型是MVVM框架中连接视图和模型的重要组成部分。

视图模型通过数据绑定,将模型的数据实时反映在视图上,并通过命令模式处理用户的操作。

三. 设计模式在MVVM中的应用1. 单例模式:在MVVM框架中,视图模型通常设计为单例模式。

这是因为视图模型需要负责管理视图和模型之间的数据交互,保证数据的一致性和及时性。

2. 观察者模式:观察者模式用于实现视图和模型之间的数据绑定。

当模型发生改变时,观察者模式会通知所有依赖于该模型的视图,使视图自动更新。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

搭建你的+Nhibernate+ Mvc 框架(一)搭建你的环境(转)使用这套框架不是很长时间。

但也基本应用了几个项目中了。

在此和大家分享一下我是怎样一步一步搭建此框架的。

并为初学者提供一个简单的示范。

欢迎共同讨论技术问题。

【本人纯属菜鸟!不足之处多谅解!】第一步:首先要看一下我项目中三层与mvc以及,Nhibernate处在的哪一层。

看下面一幅图:先做为一个大体的思路和了解。

第二步:了解做什么用?/了解Nhibernate干什么用?/了解 Mvc :《从零开始学习 MVC 1.0》/zhangziqiu/archive/2009/02/27/aspnet-mvc-1.html另外可以看webcast上的视频:老赵的关于 Mvc教程!我本人很喜欢。

可以用IReaper下载观看。

第三步:准备:,Nhibernate的开发环境,我的使用的版本比较老,但是一直使用着比较稳定,功能也基本满足开发需要,在此就不多说了,在/ 有具体版本的下载和文档,读者可以自行下载。

注:VS2008 + sp1 + Mvc 环境都要装上第四步:现在我们的环境搭建的差不多了。

然后就开始我们的旅程吧。

先写到这,你的环境准备好了吗?(二)创建你的项目(转)本篇文章的目的:首先是创建解决方案。

并创建相关的项目。

先介绍一下项目的各自的作用:从数据库层到表示层依次为:数据库层:1、接口IDao层:IDao2、Dao层实现:HibernateDao和SqlDaoHibernateDao:由Hibernate实现的IDao部分SqlDao:是由我们自己写sql实现的部分业务逻辑层:1、业务逻辑接口层:IBLL2、业务逻辑接口的实现:BLL3、我们把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 DATETIMEPRIMARY KEY CLUSTERED(Id ASC)WITH (IGNORE_DUP_KEY =OFF) ON[PRIMARY]) ON[PRIMARY]ENDGO--添加注释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'GOEXEC 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建立好了吗?(三)实现数据库接口层和业务逻辑层(转)本篇是介绍我们完成数据库接口层和业务逻辑层的接口的设计和实现。

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

第一步:设计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在编写代码之前,我们首先要引入和Nhibernate的支持类库。

我用到的所有dll,稍后将提供下载。

如果你急需可以通过邮件向我索取:malun666@另外要添加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<er> GetAllUsers(){return HibernateTemplate.LoadAll<er>(); }public er GetUserById(int Id){return (er)HibernateTemplate.Execute(new HibernateDelegate<er>(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 er;}), true);}public bool AddUser(er user){if (HibernateTemplate.Save(user) != null){return true;}return false;}public bool UpdateUser(er user){HibernateTemplate.Update(user);return true;}public bool AddOrUpdateUser(er user){HibernateTemplate.SaveOrUpdate(user);return true;}public bool DeleteUser(er user){HibernateTemplate.Delete(user);return true;}#endregion}}这就实现了数据库接口层的基本的增删改。

相关文档
最新文档