




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JavaEE简介项目分析与设计JavaEE框架技术简介什么是框架技术JavaEE简介与主要技术JavaEE中开发模式JavaEE主流开源框架技术:SSH2框架JavaEE主流开源框架技术:SSM框架什么是框架技术伴随着软件开发技术的发展,在多层的软件开发项目中,可重用、易扩展,而且是经过良好测试的软件组件,越来越为人们所青睐。这意味着人们可以将充裕的时间用来分析、构建业务逻辑的应用上,而非繁杂的代码工程。于是人们将相同类型问题的解决途径进行抽象,抽取成一个应用框架,也就是说框架是一些经过实践证明的、能用来开发高效应用系统的技术。JavaEE项目就可以通过框架的设计和运用来达到控制软件质量提高软件的生产效率。JavaEE简介
JavaEE(JavaPlatform,EnterpriseEdition)是Sun公司推出的企业级应用程序版本;提供Web服务、组件模型、管理和通信API;用来实现企业级的面向服务体系结构(service-orientedarchitecture,SOA)和Web2.0应用程序;可移植、健壮、可伸缩且安全的服务器端Java应用程序。JavaEE规范定义了一个完善的应用组件技术框架JavaEE中主要技术
Servlet
基于请求/响应机制;JSP
基于Servlet技术的动态网页技术标准;EJB
是一种规范,定义了一个可重用的组件框架,用来实现分布式的、面向对象的业务逻辑,能将业务逻辑与底层的系统逻辑分开;
JDBC
用于执行SQL语句的JavaAPI,由一组用Java语言编写的类和接口组成;JavaBean基于Java的组件模型,通过JavaBean可以无限扩充Java程序的功能,通过JavaBean的组合可以快速的生成新的应用程序。JavaEE中主要技术
RMI用于调用远程对象上方法,使用序列化方式在客户端和服务器端的对象之间传递数据。JNDI(JavaNamingandDirectoryInterface)提供从Java平台到其他平台的统一的无缝的连接。这个接口屏蔽了企业网络所使用的各种命名和目录服务。JMS(JavaMessageService)提供企业消息服务,如可靠的消息队列、发布和订阅通信、以及有关推拉(Push/Pull)技术的各个方面。JPA(JavaPersistenceAPI),JPA通过JDK5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。JavaEE主中开发模式—JSP开发模式
JavaEE主中开发模式—MVC模式
MVCMVC是Model-View-Controller的简称,即模型-视图-控制器;MVC是一种设计模式,将应用程序的输入、处理、输出流程按照Model、View、Controller的方式进行分离,并被分成三层——模型层、视图层、控制层。JavaEE主流框架技术—SSH2框架
SSH2是struts2+spring+hibernate的一个集成框架,集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts2作为系统的整体基础架构,负责MVC的分离,在Struts2框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts2和hibernate。JavaEE主流框架技术—SSH框架
Struts2框架Struts2是在MVC模式上构建的一种Web解决方案。Struts2框架由3个部分组成:核心控制器FilterDispatcher、业务控制器和用户实现的业务逻辑组件。其中FilterDispatcher是核心控制器,用户需要实现业务控制器和业务逻辑组件。JavaEE主流框架技术—SSH框架
Spring框架Spring是为了解决企业应用开发的复杂性而创建的一个开源框架;是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。JavaEE主流框架技术—SSH框架
Hibernate框架是非常优秀、成熟的O/RMapping框架;提供了强大、高性能的Java对象和关系数据的持久化和查询功能。Hibernate作为持久层的一项实现技术,运用DAO(DataAccessObject)设计模式来实现对象和关系数据库之间的映射。实现了对JDBC进行了轻量级的对象封装,在Java应用和关系数据库之间建立桥梁,可使用面向对象的编程思维来操作关系数据库。JavaEE主流框架技术—SSM框架
SSM框架是SpringMVC,Spring和MyBatis框架的整合,是标准的MVC模式,将整个系统划分为表现层,controller层,service层,DAO层四层。使用SpringMVC负责请求的转发和视图管理,Spring实现业务对象管理,MyBatis作为数据对象的持久化引擎。JavaEE主流框架技术—SSM框架
MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注SQL本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。MyBatis框架JavaEE主流框架技术—SSM框架
SpringMVC是一种基于Java的实现了WebMVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,SpringMVC也是要简化我们日常Web开发的。SpringMVC框架谢谢观看主讲人:蒋卫祥延迟符搭建JavaEE企业开发环境项目分析与设计搭建JavaEE企业开发环境JDK版本的选择与配置数据库的选择Web服务器的选择开发工具的选择使用开发工具开发用户注册模块JDK的版本选择与配置选择JDK1.8及以上版本作为Java开发环境JDK版本的选择安装与配置打开下载的jdk安装包,在安装过程中可以更改安装路径,但是需要记住安装路径。打开我的电脑,右键->属性->高级系统设置->环境变量系统变量->新建
变量名:JAVA_HOME
变量值:C:\ProgramFiles\Java\jdk1.8.0_152(以安装路径为主)系统变量->新建
变量名:CLASSPATH
变量值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;系统变量->编辑
找到Path选项:
变量名:Path
变量值:将
%JAVA_HOME%\bin;Web服务器的选择选择Tomcat9作为Web服务器Web服务器的选择Tomcat服务器优点Tomcat是一个开源的web服务器;Tomcat运行时占用的系统资源小,扩展性好,支持负载均衡与邮件服务等开发应用系统常用的功能;Tomcat是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。数据库的选择选择Mysql8作为系统的数据库数据库的选择Mysql的优点运行速度快,MySQL体积小,命令执行的速度快。使用成本低。MySQL是开源的,且提供免费版本,对大多数用户来说大大降低了使用成本。使用容易。与其他大型数据库的设置和管理相比,其复杂程度较低,易于使用。可移植性强。MySQL能够运行与多种系统平台上,如Windows,Linux,Unix等。适用更多用户。MySQL支持最常用的数据管理功能,适用于中小型企业甚至大型网站应用。开发工具的选择JavaEE企业级开发有很多很多开发工具,主要包括:EclipseJavaEEIDEMyEclipseNetBeansIntelliJIDEA开发工具IDEA的优点智能化:智能提示、重构功能等,可以提高开发效率。界面友好:界面简洁明了,操作方便。插件丰富:支持各种类型的插件,可以满足各种需求。性能优秀:运行流畅,反应迅速。持续更新:JetBrains公司不断更新,功能在不断完善。IDEA的主要功能代码编辑:支持语法高亮、自动完成、代码检查等功能。项目管理:支持Maven、Gradle等工具来管理项目。调试:支持调试Java程序。测试:支持JUnit、TestNG等测试框架。代码重构:支持重命名、提取方法、提取变量等功能。集成版本控制系统:支持Git、SVN等版本控制系统。使用IDEA开发用户注册模块用户注册的功能是用户输入注册信息,查询用户是否存在,如果不存则保存到数据库中,如果已经存在则返回。视图层模型层控制层register.jspregisterSuccess.jspregisterError.jsp
UserInfoModel.java
UserInfoControl.java表1-1用户注册模块的MVC使用IDEA开发用户注册模块创建Web项目:chap1<dependency>
<groupId>javax.servlet</groupId>
<artifactId>
javax.servlet-api
</artifactId>
<version>4.0.1</version></dependency>在pom.xml文件中加入servlet-api依赖使用IDEA开发用户注册模块Web服务器配置使用IDEA开发用户注册模块数据库的连接类增加mysql依赖连接数据库类:DBCon.java连接方法:ConnectiongetConnection()主要代码如下:Class.forName("com.mysql.cj.jdbc.Driver");con=DriverManager.getConnection("jdbc:mysql://localhost:3306/db_hbook?characterEncoding=utf8","root","123");<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.23</version></dependency>使用IDEA开发用户注册模块用户注册模型端类:UserInfoModel.java用户注册功能:
insert(UserInfouserInfo)方法模型端的设计模型端主要代码public
booleaninsert(UserInfoControlleruserInfo){//保存用户注册信息 boolean
result=false; try{ con=db.getConnection();//数据库连接 Stringsql="insertintotb_userInfovalues(?,?,?,?)";
PreparedStatementpstmt; pstmt=con.prepareStatement(sql);//……设置用户名、密码、地址
int
i=pstmt.executeUpdate(); if(i>0){//判断是否插入成功 result=true; } }catch(SQLExceptione){ e.printStackTrace(); } return
result;}使用IDEA开发用户注册模块用户控制端类:UserInfoControl.java控制端的设计控制端主要代码public
classUserInfoControlextendsHttpServlet{public
voiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,
IOException{response.setContentType("text/html;charset=gb2312");PrintWriterout=response.getWriter();
//通过请求参数获取用户输入信息:用户名、密码、地址信息
TransCodecode=newTransCode();
……//用户名、密码、地址编码转换UserInfouserInfo=newUserInfo();
……//用户信息对象设置用户名、密码、地址
UserInfoModelpmodel=newUserInfoModel();
booleanresult=pmodel.insert(userInfo);//保存用户信息if(result){//保存成功request.getRequestDispatcher("/userInfoSuccess.jsp").forward(request,response);}else{//保存失败request.getRequestDispatcher("/userInfoError.jsp").forward(request,response);
}}使用IDEA开发用户注册模块运行结果谢谢观看主讲人:蒋卫祥延迟符需求分析项目分析与设计软件需求分析延迟符什么是需求分析?“需求分析”,是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。主要工作:深入描述软件的功能和性能,确定软件设计的限制和软件同其他系统元素的接口细节,定义软件的其他有效性需求。具体包括:确定对系统的综合要求分析系统的数据要求导出系统的逻辑模型修正系统开发计划软件需求分析通常对软件系统有下述几方面的综合要求:功能需求可靠性和可用性需求接口需求逆向需求性能需求出错处理需求约束将来可能提出的要求确定对系统的综合要求软件需求分析延迟符分析系统的数据要求分析系统的数据要求,是软件分析的一个重要任务,通常采用建立数据模型的方法。复杂的数据由许多基本的数据元素组成,数据结构表示数据元素之间的逻辑关系。利用数据字典可以全面地定义数据,但是数据字典不够直观。为了提高可理解性,常常利用图形化工具辅助描述数据结构。延迟符通常使用以下几种方式描述系统的逻辑模型:数据流图E-R图状态转换图数据字典主要的处理算法导出系统的逻辑模型软件需求分析软件需求分析延迟符修正系统开发计划在需求分析过程中,可以准确估计系统成本和进度,修正以前定制的开发计划软件需求分析延迟符结构化分析(简称SA)方法是面向数据流的需求分析方法,适合于分析大型的数据处理系统,特别是企事业管理系统。SA法也是一种建模的活动,主要是根据软件内部的数据传递、变换关系,自顶向下逐层分解,描绘出满足功能要求的软件模型。分解抽象SA基本思想需求分析方法:结构化分析方法软件需求分析需求分析方法:结构化分析方法分解指复杂的系统分解成若干小问题,然后分别解决。自顶向下、逐层分解。顶层抽象地描述了整个系统,底层具体地画出了系统的每一个细节,而中间层是从抽象到具体的逐层过渡。SA基本思想抽象分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容。软件需求分析延迟符需求分析方法:结构化分析方法建立当前系统的“具体模型”:即将当前系统用DFD图描述出来抽象出当前系统的逻辑模型:分析系统“具体模型”,抽象出其本质的因素,排除次要因素,获得用DFD图描述的当前系统的“逻辑模型”。建立目标系统的逻辑模型:分析目标系统与当前系统逻辑上的差别,从而进一步明确目标系统“做什么”,建立目标系统的“逻辑模型”(修改后的DFD图)。为了对目标系统作完整的描述,还需要考虑人机界面和其他一些问题。SA步骤软件需求分析延迟符需求分析方法:结构化分析方法分层的数据流图数据词典描述加工逻辑的结构化语言、判定表或判定树SA描述工具软件需求分析延迟符需求分析方法:结构化分析方法SA描述工具数据流图(简称DFD)是描述系统中数据流程的图形工具,标识了一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换逻辑输出所需的加工处理。箭头表示数据流,圆或椭圆表示加工。双杠或者单杠表示数据存储,矩形框表示数据的源点或终点,即外部实体。软件需求分析延迟符需求分析方法:结构化分析方法数据流是数据在系统内传播的路径,由一组固定的数据项组成。可从加工流向加工,也可从加工流向文件或从文件流向加工,也可从源点流向加工或从加工流向终点。加工也称为数据处理,它对数据流进行某些操作或变换。每个加工要有名字,简明地描述完成什么加工。在分层的数据流图中,加工还应有编号。数据存储指暂时保存的数据,可以是数据库文件或任何形式的数据组织。流向数据存储的数据流可理解为写入文件,或查询文件,从数据存储流出的数据可理解为从文件读数据或得到查询结果。数据源点和终点是软件系统外部环境中的实体(包括人员、组织或其他软件系统)。SA描述工具软件需求分析延迟符需求分析方法:面向对象方法面向对象分析方法(OOA),是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题。OOA与结构化分析区别:OOA强调在系统调查资料的基础上,针对OO方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析。OOA模型由5个层次(主题层、对象类层、结构层、属性层和服务层)和5个活动(标识对象类、标识结构、定义主题、定义属性和定义服务)组成。定义了两种对象类之间的结构:分类结构是一般与特殊的关系;组装结构反映了对象之间的整体与部分的关系。软件需求分析延迟符需求分析方法:面向对象方法OOA在定义属性的同时,要识别实例连接实例连接是一个实例与另一个实例的映射关系。OOA在定义服务的同时要识别消息连接当一个对象需要向另一对象发送消息时,它们之间就存在消息连接。OOA中的5个层次和5个活动持续贯穿在OOD(面向对象的设计)过程中软件需求分析延迟符需求分析方法:面向对象方法①抽象:抽象原则包括过程抽象和数据抽象;②封装:把对象的属性和服务结合为一个不可分的系统单位,并尽可能隐蔽对象的内部细节;③继承:特殊类和一般类;④分类:把具有相同属性和服务的对象划分为一类;⑤聚合:又称组装;OOA主要原则⑥关联
:通过一个事物联想到另外的事物;⑦消息通信:用消息连接表示出对象之间的动态联系;⑧粒度控制:考虑全局时,注意其大的组成部分,暂时不详察具体的细节;考虑某部分的细节时则暂时撇开其余的部分;⑨行为分析:行为复杂。软件需求分析延迟符需求分析方法:面向对象方法功能模型:即用例模型;对象模型:对用例模型进行分析,把系统分解成互相协作的分析类,通过类图/对象图描述对象/对象的属性/对象间的关系,是系统的静态模型。动态模型描述系统的动态行为,通过时序图/协作图描述对象的交互,以揭示对象间如何协作来完成每个具体的用例;单个对象的状态变化/动态行为可以通过状态图来表达。三种分析模型软件需求分析延迟符需求分析方法:面向对象方法OOA基本步骤确定结构确定主题确定属性确定方法确定对象和类软件需求分析延迟符需求分析方法:面向对象方法用例图:用来图示化系统的主事件流程,描述客户的需求;用例就是软件的功能模块,是设计系统分析阶段的起点,设计人员根据客户的需求来创建和解释用例图,用来描述软件应具备哪些功能模块以及这些模块之间的调用关系。用例图包含:用例参与者用例之间用关联来连接软件需求分析延迟符需求分析方法:面向对象方法用例是从系统外部可见的行为,是系统为某一个或几个参与者(Actor)提供的一段完整的服务。用例之间关系:都是独立、并列的,它们之间并不存在着包含从属关系;但为体现一些用例之间的业务关系,提高可维护性和一致性,用例之间可以抽象出:包含(include)、扩展(extend)和泛化(generalization)几种关系。软件需求分析延迟符需求分析方法:面向对象方法包含include使用包含(Inclusion)用例来封装一组跨越多个用例的相似动作(行为片断),以便多个基本用例复用。基本用例控制与包含用例的关系,以及被包含用例的事件流是否会插入到基本用例的事件流中。基本用例可以依赖包含用例执行的结果,但双方不能访问对方的属性。软件需求分析延迟符需求分析方法:面向对象方法扩展extends将基本用例中一段相对独立并且可选的动作,用扩展用例加以封装,再让它从基本用例中声明的扩展点上进行扩展,从而使基本用例行为更简练和目标更集中。扩展用例为基本用例添加新的行为扩展用例可以访问基本用例的属性。软件需求分析延迟符需求分析方法:面向对象方法泛化generalization子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它,父用例通常是抽象的。软件需求分析延迟符需求分析方法:面向对象方法用例描述一般包括:简要描述(说明)前置(前提)条件基本事件流其他事件流异常事件流后置(事后)条件等等软件需求分析延迟符需求分析方法:面向对象方法用例编号:例如:系统(QTP)+模块(JH)+顺序(001)=QTPJH001用例名称用例描述执行者过程描述主过程描述备选过程描述业务规则涉及的业务实体前置条件:执行用例之前必须存在的系统状态。后置条件:用例一执行完毕系统可能处于的一组状态。用例描述模板软件需求分析业务流程图:简介业务流程图(TFD):用一些规定的符号及连线来表示某个具体业务处理过程。是一种描述系统内各单位、人员之间业务关系、作业顺序和管理信息流向的图表,利用它可以帮助分析人员找出业务流程中的不合理流向,是物理模型。业务流程图的绘制是按照业务的实际处理步骤和过程进行的。业务流程图是一种系统分析人员都懂的共同语言,用来描述系统组织结构、业务流程。软件需求分析业务流程图:基本符号及含义软件需求分析业务流程图:绘制步骤现行系统业务流程总结在画业务流程图之前,要对现行系统进行详细调查,并写出现行系统业务流程总结。业务流程图的绘制根据系统业务流程的描述,绘制出系统处理业务流程图。软件需求分析延迟符业务流程图:作用制作流程图的过程是全面了解业务处理的过程,是进行系统分析的依据;是系统分析员、管理人员、业务操作人员相互交流思想的工具;系统分析员可直接在业务流程图上拟出可实现计算机处理的部分;可分析出业务流程的合理性。谢谢观看主讲人:蒋卫祥延迟符任务1.2办公自动化系统需求分析项目分析与设计办公自动化系统需求分析延迟符任务介绍本任务以分析人事管理模块为例说明系统需求分析过程,主要包括:分析某高校办公业务需求,经过需求分析和数据整理,确认高校办公自动化管理系统;主要包括人事管理、日程管理、文档管理、消息传递、系统管理、考勤管理、会议管理、工作流转等几大模块。办公自动化系统需求分析实施步骤1人事管理模块功能分析主要进行机构管理、部门管理、员工管理。2系统非功能需求主要进行性能需求分析、安全需求分析。办公自动化系统需求分析实施步骤包含:展示机构信息,可以添加、修改、删除机构。1人事管理模块功能分析(1)机构管理机构管理用View展示机构信息,可以添加、修改、删除机构。在添加机构时,需要输入机构名称及机构简称。办公自动化系统需求分析实施步骤展示部门信息,可以添加、修改、删除部门。部门从属于机构,一个机构可以有多个部门。1人事管理模块功能分析(2)部门管理部门管理用View展示部门信息,可以添加、修改、删除部门;部门从属于机构,一个机构可以有多个部门;在添加部门时,需要输入信息。功能描述办公自动化系统需求分析实施步骤展示员工信息,可以添加、修改、删除员工,并可查看员工详情。1人事管理模块功能分析(3)员工管理用View展示员工信息,可以添加、修改、删除员工,并可查看员工详情;在添加员工时需要输入的信息及相应的限制。办公自动化系统需求分析延迟符实施步骤精度要按照严格的数据格式输入,否则系统不给予响应进行处理;查询时要保证查全率,所有相应域包含查询关键字的记录都能查到;本系统采用了两种方法进行查询:直接查询和模糊查询。时间特性要求响应速度:单个用户点浏览网页响应时间小于1秒。商品搜索响应时间小于2秒。100人同时在线,浏览操作响应时间小于2秒,商品搜索响应时间小于5秒。2系统非功能需求(1)性能需求分析办公自动化系统需求分析实施步骤本系统的系统架构,以及权限机制可以保证系统的安全性。系统架构:本系统采用B/S模型,从而使服务器数据源与客户端分离,保证了数据的物理独立性;用户权限机制:通过角色的定义管理实现,通过定义某些角色能进行的操作权限,和定义用户拥有的角色,限定用户的操作权限,实现对用户的授权。2系统非功能需求(2)安全需求分析办公自动化系统需求分析延迟符应用面向对象的需求分析方法与UML用例图分析学工管理系统的功能需求分析与非功能需求分析,并编写系统需求分析说明书。拓展训练谢谢观看主讲人:蒋卫祥延迟符系统设计项目分析与设计系统设计延迟符一软件设计系统设计是新系统的物理设计阶段。根据系统需求分析阶段所确定的新系统的逻辑模型、功能要求,在用户提供的环境条件下,设计出一个能在计算机网络环境上实施的方案,即建立新系统的物理模型。主要目的:明确软件系统“如何做”;主要任务:设计软件系统的模块层次结构,设计数据库的结构以及设计模块的控制流程。分两个步骤:概要设计:解决软件系统的模块划分和模块的层次结构以及数据库设计;详细设计:解决每个模块的控制流程,内部算法和数据结构的设计。完成概要设计说明书和详细设计说明书,也可合并为设计说明书。系统设计主要内容包括:确定设计方针和方法;将系统分解为若干子系统、确定各子系统的目标、功能及其相互关系;确定对子系统的管理体制和控制方式;确定对各子系统进行技术设计和评价;确定对全系统进行技术设计和评价等。一软件设计系统设计延迟符二总体设计总体设计的主要任务:把需求分析得到的DFD转换为软件结构和数据结构。设计软件结构的具体任务是:将一个复杂系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等。数据结构的设计包括:数据特征的描述、确定数据的结构特性、以及数据库的设计。系统设计二总体设计总体设计基本过程包括三个方面的设计:首先是系统构架设计,用于定义组成系统的子系统,以及对子系统的控制、子系统之间的通信和数据环境等;然后是软件结构的设计,用于定义构造子系统的功能模块、模块接口、模块之间的调用与返回关系。最后是数据结构的设计,包括数据结构、数据库结构等。系统设计二总体设计总体设计要求:建立在需求分析基础之上,软件需求文档是软件概要设计的前提条件。总体设计阶段的任务主要有以下几个方面:制定规范;系统构架设计;软件结构设计;公共数据结构设计;安全性设计、故障处理设计、可维护性设计;编写文档等。系统设计延迟符三数据库设计数据库设计:是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。数据库设计基本步骤:需求分析阶段概念结构设计阶段逻辑结构设计阶段数据库物理设计阶段数据库实施阶段系统设计三数据库设计需求分析阶段需求收集和分析,结果得到数据字典描述的数据需求和数据流图描述的处理需求。需求分析的重点是调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。系统设计三数据库设计通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,可以用E-R图表示。概念结构设计阶段系统设计延迟符三数据库设计将概念结构转换为某个DBMS所支持的数据模型(例如关系模型),并对其进行优化。设计逻辑结构应该选择最适于描述与表达相应概念结构的数据模型,然后选择最合适的DBMS。E-R图转换为关系模型实际上就是要将实体、实体的属性和实体之间的联系转化为关系模式。逻辑结构设计阶段系统设计三数据库设计为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。数据库物理设计阶段系统设计三数据库设计运用DBMS提供的数据语言(例如SQL)及其宿主语言(例如C),根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。数据库实施主要包括以下工作:用DDL定义数据库结构;组织数据入库;编制与调试应用程序;数据库试运行。数据库实施阶段谢谢观看主讲人:蒋卫祥延迟符任务1.3办公自动化系统设计项目分析与设计办公自动化系统设计延迟符任务介绍本任务分析高校办公自动化管理系统的软件设计,主要包括:系统的总体结构设计;系统的架构设计;系统的数据库设计;系统的详细设计。办公自动化系统设计实施步骤办公自动化系统设计实施步骤办公自动化系统设计实施步骤高校办公自动化管理系统:采用基于Web的业务应用系统,系统应用成熟稳定的JavaEE(SSM)框架技术。应用SSM框架技术将系统分为三个层次:表示层、业务层和持久层。分层结构将用户界面、业务逻辑和数据进行了分离,实现了系统内部松耦合,以灵活、快速地响应业务需求的变化。2系统架构设计办公自动化系统设计实施步骤2系统架构设计办公自动化系统设计延迟符实施步骤本任务使用工具PowerDesigner设计系统的数据库,系统共有12张表,其中包括:权限相关表:用户表、权限表、角色表、权限角色表;文档相关表:文件夹表、文件表;部门相关表:机构表、部门表;工作流程相关表:申请表、签到表;日志相关表:登录日志表;个人信息相关表:员工档案表。3数据库设计办公自动化系统设计实施步骤办公自动化系统设计实施步骤办公自动化系统设计实施步骤办公自动化系统设计实施步骤办公自动化系统设计实施步骤办公自动化系统设计实施步骤办公自动化系统设计实施步骤办公自动化系统设计延迟符设计学工管理系统的功能结构、总体架构、数据库,分析其中一个子模块的实现步骤。拓展训练谢谢观看延迟符Mybatis框架简介与运行原理MyBatis入门与配置
JavaEE框架技术简介ORM与持久化Mybatis简介Mybatis运行原理ORM与持久化数据持久化一般指将内存中的数据或对象存储到可长期保存的某种介质上,以使其存活时间比创建该对象的进程时间要长。在对数据或对象持久化后,可以重新获取并能保证在没有对其进行任何改动的情况下,与持久化之前的一样。一般持久化的实现通过各种关系数据库来完成。持久层就是专门负责持久化工作的逻辑层,由它统一与数据库层打交道。持久层在数据存储器中负责存储或获取数据的一组类和组件,持久层必须包括一个业务领域实体的模型,在持久层中封装对数据库访问的细节,向业务逻辑公开接口。ORM与持久化对象-关系映射(Object/RelationMapping,ORM)是随着面向对象的软件方法发展而产生的,是为了解决面向对象与关系数据库存在的互不匹配现象而产生的技术。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。ORM通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。本质上就是将数据表映射为对象类,从一种形式转换到另外一种形式。使用ORM技术,将在数据库中直接进行的原始操作演变为对类的属性和方法的操作,而间接更改数据表的数据。
如今流行的ORM产品很多,如:ApacheOJB、MyBatis、Cayenne、Hibernate等,MyBatis作为轻量级ORM模型,对面向对象特性的支持非常完备,完美的实现了对象模型和关系模型间的转换,逐步确立了在JavaORM架构中领导地位。Mybatis简介MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apachesoftwarefoundation迁移到了googlecode,并且改名为MyBatis。BATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。MyBatis是一款优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。MyBatis可以通过简单的XML或注解来配置和映射原始类型、接口和JavaPOJO(PlainOldJavaObjects,普通老式Java对象)为数据库中的记录。MyBatis的优点如下:MyBatis是一个“半成品”的“ORM”框架。作用于DAO(DataAccessObject)层。
和Hibernate相比,他是一个轻量级的选手。有着灵活的SQL的操作。
和JDBC相比,他实现了SQL和代码的分离。可重用。
Mybatis框架运行原理-功能架构
Mybatis框架运行原理-功能架构MyBatis的功能架构分为三个层次:
(1)API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。(2)数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。(3)基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支撑。
Mybatis框架运行原理-运行原理
(1)读取MyBatis的配置文件。mybatis-config.xml为MyBatis的全局配置文件,用于配置数据库连接信息。(2)加载映射文件。映射文件即SQL映射文件,该文件中配置了操作数据库的SQL语句,需要在MyBatis配置文件MyBatis-config.xml中加载。MyBatis-config.xml文件可以加载多个映射文件,每个文件对应数据库中的一张表。(3)构造会话工厂。通过MyBatis的环境配置信息构建会话工厂SqlSessionFactory。(4)创建会话对象。由会话工厂创建SqlSession对象,该对象中包含了执行SQL语句的所有方法。(5)Executor执行器。MyBatis底层定义了一个Executor接口来操作数据库,它将根据SqlSession传递的参数动态地生成需要执行的SQL语句,同时负责缓存的维护。(6)MappedStatement对象。在Executor接口的执行方法中有一个MappedStatement类型的参数,该参数是对映射信息的封装,用于存储要映射的SQL语句的id、参数等信息。(7)输入参数映射。输入参数类型可以是Map、List等集合类型,也可以是基本数据类型和POJO类型。输入参数映射过程类似于JDBC对preparedStatement对象设置参数的过程。(8)输出结果映射。输出结果类型可以是Map、List等集合类型,也可以是基本数据类型和POJO类型。输出结果映射过程类似于JDBC对结果集的解析过程。谢谢观看主讲人:崔浩延迟符搭建Mybatis开发环境MyBatis入门与配置搭建Mybatis开发环境创建项目配置Mybatis开发环境创建项目文件->新建->项目,构建系统处选择Maven,点开高级设置,可以修改组ID和工件ID本节任务实现在IDEA2022版中搭建Mybtais环境,MyBatis版本为3.5.15,MySQL数据库为8,Java版本为1.8。为保证项目可以正常运行,要先配置maven。创建项目创建成功后,打开项目文件,如图配置Mybatis环境在pom.xml文件中添加依赖<!--MyBatis--><dependency><groupId>org.MyBatis</groupId><artifactId>MyBatis</artifactId><version>3.5.11</version></dependency><!--mysql驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.31</version></dependency>配置Mybatis环境(2)创建XML核心配置文件MyBatis-config.xml<configuration><environmentsdefault="development"><environmentid="development"><transactionManagertype="JDBC"/><dataSourcetype="POOLED"><!--获取数据库连接信息--><propertyname="driver"value="com.mysql.cj.jdbc.Driver"/><propertyname="url"value="jdbc:mysql://localhost:3306/db_hbook?useSSl=true"/><propertyname="username"value="root"/><propertyname="password"value="123"/></dataSource></environment></environments>
<!--加载sql映射文件--><mappers>
<mapperresource="cn/js/ccit/mapper/UserMapper.xml"/></mappers></configuration>在resource文件夹下创建文件:myBatis-config.xml,文件后缀一定要为.xml。配置Mybatis环境(3)创建用户表CREATETABLE`tb_user`(`uid`int(11)NOTNULLAUTO_INCREMENT,`uname`varchar(255)CHARACTERSETutf8mb4COLLATEutf8mb4_general_ciNULLDEFAULTNULL,`uage`int(11)NULLDEFAULTNULL,PRIMARYKEY(`uid`)USINGBTREE)ENGINE=InnoDBAUTO_INCREMENT=5CHARACTERSET=utf8mb4COLLATE=utf8mb4_general_ciROW_FORMAT=Compact;在数据库中,创建用户表:tb_user,具体代码如下:配置Mybatis环境(4)创建用户类@DatapublicclassUser{privateintuid;//用户idprivateStringuname;//用户姓名privateintuage;//用户年龄}配置Mybatis环境(5)编写sql映射文件<mappernamespace="cn.js.ccit.mapper.UserMapper"><!--id:每一个sql语句的唯一标识,即外部通过id来调用语句--><!--resultType:返回的结果类型,即定义的POJO类--><selectid="selectAll"resultType="cn.js.ccit.pojo.User">select*fromtb_user</select></mapper>在cn.js.ccit.mapper包下创建UserMapper.xml文件。<select>标签是用于查询语句,且标签内直接写sql查询语句,该语句查询user表中所有信息。【注】:resultType中填写类型时要需要加上类所在的包。配置Mybatis环境(6)测试publicclassUserTest{@TestpublicvoidselectAllTest(){//1.加载MyBatis的核心配置文件a,获取SqlSessionFactory对象Stringresource="myBatis-config.xml";InputStreaminputStream=null;try{inputStream=Resources.getResourceAsStream(resource);SqlSessionFactorysqlSessionFactory=newSqlSessionFactoryBuilder().build(inputStream);//2.获取SqlSession对象,执行sql语句SqlSessionsqlSession=sqlSessionFactory.openSession();//3.执行sql语句List<User>users=sqlSession.selectList("cn.js.ccit.mapper.UserMapper.selectAll");System.out.println(users);//4.释放资源sqlSession.close();}catch(Exceptione){e.printStackTrace();}}}创建一个测试类UserTest.java,UserTest类通过SqlSessionFactory、SqlSession等类执行sql语句。配置Mybatis环境运行成功界面谢谢观看主讲人:崔浩延迟符SqlSessionFactory与SqlSessionMyBatis入门与配置SqlSessionFactorySqlSession延迟符MyBatis的核心对象延迟符SqlSessionFactory对象SqlSessionFactory是单个数据库映射关系经过编译后的内存镜像,其主要作用是创建SqlSession。SqlSessionFactory是一个接口,其实例可以通过SqlSessionFactoryBuilder对象来构建。SqlSessionFactoryBuilder可以通过XML配置文件或一个预先定义好的Configuration实例构建出SqlSessionFactory的实例。什么是SqlSessionFactory?延迟符SqlSessionFactory对象(1)InputStreaminputStream=Resources.getResourceAsStream("mybatis-config.xml");(2)SqlSessionFactorysqlSessionFactory=newSqlSessionFactoryBuilder().build(inputStream);构建SqlSessionFactory
通过XML配置文件创建:使用
MyBatis的配置文件(通常是
MyBatis-config.xml),在其中配置数据源、映射文件等信息,然后通过SqlSessionFactoryBuilder类的build()方法创建SqlSessionFactory实例。通过Java代码创建:通过程序化的方式,直接在代码中配置数据源、映射信息等,然后调用SqlSessionFactoryBuilder类的build()方法创建SqlSessionFactory实例。延迟符SqlSessionFactory对象-功能和作用
数据库会话管理:SqlSessionFactory负责创建SqlSession对象,SqlSession对象是与数据库交互的主要入口,它提供了执行SQL语句、获取映射器(Mapper)等功能。线程安全性:通常情况下,SqlSessionFactory是一个单例对象,它的创建成本较高,因此通常会在应用程序启动时被创建,并在整个应用程序生命周期中被共享和重复使用。配置加载:SqlSessionFactory可以从配置文件中加载数据源、映射文件等配置信息,从而正确地配置数据库连接和SQL映射。延迟符SqlSessionFactory对象-生命周期管理SqlSessionFactory的生命周期通常与应用程序的生命周期相同,它在应用程序启动时被创建,随着应用程序的关闭而销毁。因此,在应用程序启动时创建SqlSessionFactory实例,然后通过整个应用程序共享它是一个常见的做法。示例代码如下。SqlSessionFactoryStringresource="MyBatis-config.xml";InputStreaminputStream=Resources.getResourceAsStream(resource);SqlSessionFactorysqlSessionFactory=newSqlSessionFactoryBuilder().build(inputStream);
SqlSessionFactory是
MyBatis中的核心接口之一,它提供了创建SqlSession对象的功能,是
MyBatis与数据库之间的桥梁。了解SqlSessionFactory的使用方法和生命周期管理对于
MyBatis的正确使用至关重要。延迟符SqlSession对象SqlSession是应用程序与持久层之间执行交互操作的一个单线程对象,其主要作用是执行持久化操作。什么是SqlSession?一个SqlSession对象对应一个连接资源的启用,以对象创建开始,至对象关闭结束。SqlSession是线程不安全的,使用后要及时关闭。延迟符SqlSession对象SqlSessionsqlSession=SqlSessionFactory.openSession();构建SqlSessiontry{ //持久化相关操作}finally{ sqlSession.close();}关闭SqlSession延迟符SqlSession对象查询方法:<T>TselectOne(Stringstatement);<T>TselectOne(Stringstatement,Objectparameter);<E>List<E>selectList(Stringstatement);<E>List<E>selectList(Stringstatement,Objectparameter);<E>List<E>selectList(Stringstatement,Objectparameter,RowBoundsrowBounds);voidselect(Stringstatement,Objectparameter,ResultHandlerhandler);延迟符SqlSession对象插入、更新和删除方法:intinsert(Stringstatement);intinsert(Stringstatement,Objectparameter);intupdate(Stringstatement);intupdate(Stringstatement,Objectparameter);intdelete(Stringstatement);intdelete(Stringstatement,Objectparameter);延迟符SqlSession对象其他方法:voidcommit();提交事务的方法。voidrollback();回滚事务的方法。voidclose();关闭SqlSession对象。<T>TgetMapper(Class<T>type);返回Mapper接口的代理对象。ConnectiongetConnection();获取JDBC数据库连接对象的方法。谢谢观看主讲人:崔浩延迟符任务2.2角色管理MyBatis入门与配置角色管理延迟符
本任务主要功能是完成角色信息的添加、删除、修改与显示。本任务以角色修改说明角色管理的设计过程,修改角色的开发分为五个步骤:视图层JSP设计、实体层、Mapper接口、Mapper映射文件、控制层。角色管理-视图层JSP设计修改角色视图层需要设计两个页面:updateRole.jsp、showAllRole.jsp。
修改角色页面角色列表显示页面这里不再展示具体实现代码,自行实现即可。角色管理-实体层角色管理子模块涉及到的实体是角色实体类。@DatapublicclassRoleimplementsjava.io.Serializable{ privateintid; privateStringroleName;//角色名称 privateStringroleDesc;//角色描述}角色管理-Mapper接口修改角色涉及的接口是:RoleMapper.java。@MapperpublicinterfaceRoleMapper{//修改角色publicvoidupdateRole(Rolerole);//查询所有角色publicList<Role>searcherAllRole();//根据id查询查询指定角色publicRolesearcherRoleByID(intid);}角色管理-映射文件XML修改角色涉及的映射文件是:RoleMapper.xml。<mappernamespace="cn.js.ccit.mapper.RoleMapper"><!--查询所有角色
--><selectid="searcherAllRole"resultType="role">select*fromtb_role</select><!--根据id查询指定角色
--><selectid="searcherRoleByID"parameterType="int“resultType="role">select*fromtb_rolewhereid=#{id}</select><!—修改角色
--><updateid="updateRole"parameterType="role">updatetb_rolesetroleName=#{roleName},roleDesc=#{roleDesc}whereid=#{id}</update></mapper>角色管理-控制层修改角色首先要根据ID获取角色信息并保存到内存中,其次在修改页面中输入要修改的角色信息,最后获取角色信息并修改角色。@WebServlet("/role")publicclassRoleControllerextendsHttpServlet{protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException{PrintWriterout=res.getWriter();req.setCharacterEncoding("utf-8");HttpSessionsession=req.getSession();res.setContentType("text/html;charset=utf-8");
Stringaction=req.getParameter("action");//获取操作命令Stringresult="";//返回地址SqlSessionsqlSession=MyBatisUtil.openSession();//获取sqlSession对象RoleMapperroleMapper=sqlSession.getMapper(RoleMapper.class);if(action.equals("show")){//显示所有角色信息List<Role>roles=roleMapper.searcherAllRole();session.setAttribute("roles",roles);result="role/showAllRole.jsp";}
if(action.equals("preUpdate")){//修改预处理StringidStr=req.getParameter("id");intid=Integer.parseInt(idStr);Rolerole=roleMapper.searcherRoleByID(id);session.setAttribute("role",role);result="role/updateRole.jsp";}if(action.equals("update")){//修改角色StringidStr=req.getParameter("id");intid=Integer.parseInt(idStr);StringroleName=req.getParameter("newRoleName");StringroleDesc=req.getParameter("newRoleDesc");Rolerole=newRole();role.setId(id);role.setRoleName(roleName);role.setRoleDesc(roleDesc);roleMapper.updateRole(role);sqlSmit();result="role?action=show";}res.sendRedirect(result);}
}谢谢观看主讲人:崔浩延迟符MyBatis配置文件与映射文件MyBatis入门与配置延迟符Mybatis配置文件Mybatis映射文件MyBatis配置文件与映射文件延迟符MyBatis的配置文件配置文件一般用mybatis-config.xml命名DB连接的基本要素实体类的别名设置运行时环境设置配置映射文件MyBatis的配置文件<configuration><properties><settings><typeAliases><typeHandlers><objectFacotry><plugins><databaseIdProvider><environments><mappers><environment><transactionManager><dataSource>MyBatis的配置文件<properties>给系统配置一些运行参数,可以放在XML文件或者properties文件中,方便参数修改。010203src目录下创建perties文件jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/mybatisjdbc.username=rootjdbc.password=rootmybatis-config.xml中配置属性<propertiesresource=“perties”/>修改配置文件中数据库连接的信息<dataSourcetype="POOLED"><propertyname="driver"value="${jdbc.driver}"/><propertyname="url"value="${jdbc.url}"/><propertyname="username"value="${jdbc.username}"/><propertyname="password"value="${jdbc.password}"/></dataSource>MyBatis的配置文件<settings>主要用于改变MyBatis运行时的行为,但在大部分情况下使用默认值便可以运行,一般只需要修改一些常用的规则即可,例如开启二级缓存、开启延迟加载等。配置项作用可设置值默认值cacheEnabled该配置影响所有映射器中配置缓存的全局开关true|falsetruelazyLoadingEnabled延迟加载的全局开关。当开
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房屋中介公司雇佣合同
- 个人授信额度借款合同
- 个人房屋出租协议书
- 铝合金方管施工方案
- 悬挑翼缘板施工方案
- 厂房照明施工方案
- 瓷砖干挂施工方案
- 海西轻钢别墅施工方案
- 沈阳地源热泵井施工方案
- 河南省平顶山市汝州市2024-2025学年八年级上学期期末生物试题(原卷版+解析版)
- 广东外语外贸大学会计专硕复试
- 行政处罚案件集体讨论审理记录
- 变电站综合自动化
- 德语现代主义文学-浙江大学中国大学mooc课后章节答案期末考试题库2023年
- 2022年安徽省公务员录用考试《行测》真题及答案
- 2023年高中音乐课件大宅门-电视剧《大宅门》主题歌
- 国际贸易地理全套课件
- 内科学支气管扩张症(课件)
- 部编人教版五年级道德与法治下册全册完整课件ppt
- RB/T 115-2014能源管理体系石油化工企业认证要求
- GB/T 32512-2016光伏发电站防雷技术要求
评论
0/150
提交评论