59142-JavaEE企业级应用开发与实战(微课版)-教学设计(新)_第1页
59142-JavaEE企业级应用开发与实战(微课版)-教学设计(新)_第2页
59142-JavaEE企业级应用开发与实战(微课版)-教学设计(新)_第3页
59142-JavaEE企业级应用开发与实战(微课版)-教学设计(新)_第4页
59142-JavaEE企业级应用开发与实战(微课版)-教学设计(新)_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学IT有疑问,就找千问千知千里寻他众百度,锋自苦寒磨砺出千锋教育JavaEESSM企业级应用与实战教学设计课程名称:JavaEESSM企业级应用与实战授课年级:_______________________授课学期:_______________________教师姓名:_______________________2022年06月24日课程名称第1章初识SSM框架计划学时2学时内容分析此章首先讲解了SSM的基本概念,然后通过SSM和SSH框架的对比,讲解了SSM框架的优缺点。教学目标与教学要求【知识目标】理解SSM的概念及结构。理解SSM的用途及优势。掌握Spring、MyBatis和SpringMVC的基本概念。【思政育人目标】教学重点Spring框架教学难点无教学方式课堂讲解及PPT演示(2学时)教学过程提出需求,导入学习任务(1)思考SSM框架的组成。学习一门框架,首先得知道因何诞生、独特性和优越性,才能知道此框架的核心所在。以SSM框架的发展作为切入点,介绍SSM框架使用的必要性。讲解Spring、MyBatis和SpringMVC,了解各个框架的基本用途。(2)明确学习方向。Spring框架的具体作用,以及为什么要使用Spring框架。MyBatis框架的具体作用。SpringMVC框架的具体作用。第1学时:认识SSM(Spring、MyBatis和SpringMVC)一、知识讲解Spring框架提前给出结论:在Spring出现之前,Java主要使用企业级JavaBean(EJB),而EJB框架过于依赖容器,加载缓慢,使用方式复杂。因此选用Spring框架解决这些问题。Spring框架的兴起根据书本示例,编写一个增加学生分数的示例,首先不使用Spring完成Student对象的获取,随后使用Spring完成Student对象的获取,通过对比得出Spring容器化管理解决了对象的冗余问题,减少了开发人员的编码量。MyBatis框架概述MyBatis是当前主流的Java持久层框架,具有高度灵活性、可优化性和易于维护等特点,为目前企业级开发的首选持久层框架。MyBatis本质是一个ORM框架,其主要作用是将数据库数据映射到常用的Java对象,流程图如下。 数据库中的表数据经过ORM框架处理过后,转化为Java对象供用户操作。SpringMVC核心思想SpringMVC负责处理前端的请求并返回相应的结果,SpringMVC可以直接使用Spring相关功能并且无需额外的配置文件。SpringMVC是目前企业级开发常用的MVC框架,专业术语称MVC为“模型-视图-控制器模式”。MVC框架是Model、View和Controller三个模块的缩写。SSM结构分析SSM整体结构可以拆分为三个部分,分别为MyBatis、SpringMVC和Spring。MyBatis框架负责和数据库交互,SpringMVC负责与前端交互,Spring负责掌控整个系统的运行。讲解整个请求的流程:前端发来请求后,此请求由SpringMVC框架接收,随后发送给业务层,由业务层与MyBatis数据层交互,取到相应的数据后返回前端。二、知识巩固回顾上课前的学习目标,对本节课的知识点进行总结。讲解第一章课后作业相关部分。第2个学时(略讲):SSM框架的优缺点一、知识讲解SSH框架SSH框架是Struts+Spring+Hibernate三个企业级应用框架的首字母缩写。Hibernate框架处于数据库持久化层,类似SSM中的MyBatis框架。Struts框架作为控制层,类似于SSM中的SpringMVC框架。SSM框架的优缺点Hibernate框架与MyBatis框架MyBatis框架:小巧、高效、简单和半自动化,对SQL的生成较为自由,支持动态SQL和存储过程,操作较为简单,初步学习容易,缺点在于:不支持自动化,需要重复编写一些重复的SQL语句,但是随着后续MyBatisPlus等辅助插件的出现,SQL同样可以自动化生成。Hibernate框架:庞大,全自动、复杂、间接,对SQL的生成追求全自动化,入门较为困难。Struts框架与SpringMVC框架SpringMVC:具有简单,便捷,强大等特点,性能方面,SpringMVC实现了低配置。Struts:特点是复杂,繁琐。性能方面,Struts2是类级别的拦截,每次请求对应实例就要新建一个Action,加载所有的属性值并注入。对比SSM框架与SSH框架SSM框架简洁小巧功能强大,自定义性强,支持功能完善,而SSH框架复杂庞大,追求自动化,编写过程较为复杂。知识巩固回顾上节内容,对上节内容进行巩固。回顾本章的学习目标,对本节课的知识点进行总结。讲解第一章课后作业相关部分。习题教材第1章习题教学后记课程名称第2章Spring基础计划学时3+14学时内容分析此章节讲解了IoC容器的概念与Spring中Bean对象的概念,然后通过示例讲解了Bean对象的添加与获取。教学目标与教学要求【知识目标】理解Spring的概念。理解Spring中IoC和DI的概念。理解Spring的核心容器。理解Spring中Bean的概念【技能目标】掌握创建与获取SpringBean的方法。掌握Web环境搭建的方法。【思政育人目标】教学重点理解IoC与DI,Spring容器和Spring中的Bean的概念,掌握Bean的添加与获取教学难点理解IoC与DI,Spring容器,Spring中的Bean的概念教学方式课堂讲解及PPT演示上机演示法与学生练习法教学过程 提出需求,导入学习任务(1)思考Spring的核心体现。Spring主要的特性是容器,根据容器对Bean进行管理。容器的基本概念就是IoC和DI,这也是最重要的核心体现。(2)明确学习方向。了解IoC和DI。了解Spring中Bean的概念。使用Spring容器对Bean进行存取。第1学时:Spring概述(Spring简介+优势+体系结构)一、知识讲解Spring概述Spring简介Spring是一个一站式的轻量级开源框架,具有IoC和DI两大核心思想,除此之外还有面向切面编程AOP的支持。IoC和DI概念支撑着Spring对Bean的管理AOP技术对Spring中事务管理等功能起到关键作用Spring优势(详细具体特点见PPT)与其他开发框架相比,Spring具有的优势主要体现在以下几个方面降低耦合度,方便开发支持AOP编程支持声明式事务方便程序测试方便集成各种优秀框架降低JavaEEAPI的使用难度Spring体系结构(略讲)Spring框架采用分层架构,由数据访问、Web交互层、AOP框架、核心容器和测试模块组成。数据访问及集成此模块主要负责Spring的数据交互。Web此模块主要负责Web请求的交互。AOP、Aspect和Instrumentation此模块主要提供了Spring的切面编程。核心容器负责维护核心容器的是Beans模块、Core模块、Context模块和SpEL模块。Beans和Core模块为Spring中较为核心的模块,其提供了IoC和DI思想的实现。Context模块在Beans和Core模块的基础之上提供了框架式Bean的访问方式。SpEL模块提供了一个强大的表达式语言,该语言用于在Spring运行时查询和操作对象。TESTTEST模块支持使用JUnit或TestNG对Spring组件进行单元测试和集成测试。MESSAGESpring4版本时开始引入MESSAGE,MESSAGE主要用于Spring框架的消息传送。二、知识巩固回顾本章的学习目标,对本节课的知识点进行总结。讲解第一章课后作业相关部分。第2学时(重点理解):Spring的核心体现(IoC、DI、容器概念和Bean)知识讲解IoC与DIIoC指将对象的控制权交由容器控制,开发人员无需编写管理依赖关系的代码,由Spring容器根据配置自动完成。DI是IoC思想的一种体现,即通过注入方式来避免调用类对其他类的强依赖关系,方便开发,减少代码冗余。编写Student类,为其注入Computer类。第一个示例通过newComputer创建对象为Student注入。第二个示例将Computer类加入到容器中,使用@Autowire注解为Student注入。抽象化流程,整个过程抽象为:“IoC思想为将对象交给容器管理,因此将Computer加入到容器中,随后通过DI依赖注入的思想,当使用Computer时将其通过Spring容器注入到Student中。”在整个流程中,通过Spring的方式赋值,辅助学生理解IoC,DI和Spring容器的概念。Spring容器Spring容器是根据IoC思想来构建的,其中,重要的实现接口是BeanFactory和ApplicationContext。BeanFactoryBeanFactory是一个接口,它代表Spring的抽象容器,其中封装了许多与Bean有关的抽象方法。ApplicationContextApplicationContext是BeanFactory的子接口,直译又称作应用上下文,ApplicationContext的子类ClassPathXmlApplicationContext是开发中常用的工具类。通过ClassPathXmlApplicationContext,可以创建一个简单的Spring容器。Spring中的BeanSpring中的Bean对象就是被Spring管理的对象。例如创建的Student对象使用@Component注解或其他方式放入Spring容器后,此对象就叫成为了Bean对象。二、知识巩固回顾本章的学习目标,对本节课的知识点进行总结。讲解第一章课后作业相关部分。进行承上启下的讲解,本章讲解的是Spring的基本概念,提出了ClassPathXmlApplicationContext对象是Spring容器的概念,下一节课将会使用ClassPathXmlApplicationContext进行容器操作。第3学时(重点操作):Spring示例(Spring容器的操作)知识讲解Spring依赖下载(详情见PPT)访问官方的SpringJAR包下载地址,点击下载。单击spring-framework-5.0.8.RELEASE-dist.zip下载依赖包。访问官方CommonsLogging包的下载地址,点击下载。单击commons-logging-1.2-bin.zip开始下载依赖包。从官方下载AOP注解所依赖的JAR包。Web环境搭建(详细图片步骤见PPT)创建项目为项目添加Web框架添加依赖包配置tomcatBean的添加与获取(重点)创建Bean在工程的src目录下创建一个Student类,其中只包含name和age参数。编写配置文件首先在src文件夹下创建一个applicationContext配置文件,随后将其设置为Spring的配置文件。编写配置文件,在配置文件中添加一个StudentBean。<beanid="student"class="Student"></bean>容器加载配置文件在src下创建一个Test类,利用ApplicationContext容器的子类来加载配置文件。publicstaticvoidmain(String[]args){ClassPathXmlApplicationContextclassPathXmlApplicationContext=newClassPathXmlApplicationContext("applicationContext.xml");Objectstudent=classPathXmlApplicationContext.getBean("student");System.out.println(student);}运行此代码,查看输出的结果。在讲解的过程中,强调操作ClassPathXmlApplicationContext容器存取Bean对象的概念。二、知识巩固回顾本章的学习目标,对本节课的知识点进行总结。讲解第一章课后作业相关部分。第4学时(上机练习)学生根据教材中的操作步骤和教师的演示进行上机练习。主要内容:部署安装Spring相关环境和软件,并完成Bean对象在Spring容器中的添加与获取。检查学生对相关知识点的掌握情况,监督学生完成任务。习题教材第2章习题教学后记课程名称第3章Spring中Bean的注入计划学时4+26学时内容分析此章首先介绍了Bean的构造器注入和属性注入,然后介绍复杂注入中的集合注入和对象注入,最后讲解Bean的各种作用域和Bean的相关注解。教学目标与教学要求【知识目标】理解Spring中Bean的作用域。理解Bean的生命周期。【技能目标】掌握Bean构造器注入的方法。掌握Bean集合注入的方法。掌握通过注解控制注入Bean的方法【思政育人目标】教学重点属性注入,集合与对象的注入教学难点利用注解管理Bean教学方式课堂讲解及PPT演示上机演示法与学生练习法教学过程提出需求,导入学习任务(1)思考Spring中Bean的属性赋值方式。Spring简单变量的赋值方式。Spring复杂对象的赋值方式。(2)思考从Spring容器中取出的Bean是否是同一个。如何控制Spring容器产生Bean的方式。(3)思考怎么利用注解来为容器注入Bean对象。第1学时:Bean的注入方式(构造器与属性注入)一、知识讲解构造器注入创建普通的对象创建一个普通的Dog对象,对象中含有name和age属性。编写配置文件<beanid="myDog"class="Dog"><constructor-argname="age"value="3"/><constructor-argname="name"value="旺财"/></bean>使用构造器注入Dog类,为Dog类赋值name和age属性,讲解<constructor-arg>的使用。测试容器中的Bean在Test类中利用容器ApplicationContext的子类ClassPathXmlApplicationContext获取容器中注入的myDog,查看其属性。ApplicationContextapplicationContext=newClassPathXmlApplicationContext("applicationContext.xml");/*使用getBean()方法获取容器中的myDog实例*/Objectdog=applicationContext.getBean("myDog");System.out.println(dog);属性注入(重点)使用构造器注入的例子,进行属性注入的演示。编写配置文件<beanid="myDog"class="Dog"><propertyname="age"value="13"/><propertyname="name"value="大旺财"/></bean>提醒:这种注入方式是通过调用对象中的set()方法来实现注入的,如果Dog类没有setName()方法,则name不能注入。测试容器中的Bean使用构造器注入的测试类,测试Bean对象的输出。结果见PPT。二、知识巩固回顾本章的学习目标,对本节课的知识点进行总结。讲解第一章课后作业相关部分。第2学时:Bean的复杂注入(复杂类型的Bean注入,Bean对象的属性传递)一、知识讲解Bean的属性

在介绍复杂注入之前,先介绍Bean的详细配置。属性说明class指定Bean对象相对于src目录的路径name指定此Bean对象的一个标识id指定此Bean对象的唯一标识,通常使用此id从容器中取Bean对象scope设置该Bean的作用域lazy-init设置是否为延迟加载,默认为false,非延迟加载init-method对象初始化方法destory对象销毁方法讲解每个属性的使用方式,详见PPT。集合与对象的注入当对象的属性为集合与对象类型时,注入方式和之前有所不同。创建实例创建实体类对象,分别为三个类:Teacher类Student类和MyClass类,其中Teacher包含了MyClass类、position字符串列表、Students列表、score分数的Map集合和vacation字符串数组。具体代码见PPT编写配置文件编写配置文件将Student和MyClass注入到Teacher中,其中重点讲解<list>元素、<value>元素、<ref>元素、<map>元素、<entry>元素和<array>元素,具体代码见PPT。测试Bean的属性编写测试类,使用getBean()方法获取teacher对象,输出此对象查看输出结果。Bean之间属性的传递在配置文件中,可以使用表达式来取用相关的值。<!--学生1--><beanid="student1"class="Student"><propertyname="age"value="13"/><propertyname="name"value="张三"/></bean><!--学生2--><beanid="student2"class="Student"><propertyname="age"value="#{student1.age}"/><propertyname="name"value="李四"/></bean>取用属性的格式为#{perties}。二、知识巩固回顾本章的学习目标,对本节课的知识点进行总结。讲解第一章课后作业相关部分。第3学时(理解):Bean对象的作用域(Bean对象singleton和prototype作用域)一、知识讲解作用域的种类(PPT)Spring中Bean的作用域有7种。简单介绍每个作用域。表中的7种作用域当中,重点讲解singleton和prototype作用域。singleton与prototype作用域singleton是Spring默认的作用域,此种作用域下,获取相同id的Bean,取得的都是相同的对象。prototype作用域为原型作用域,被标注为prototype的Bean,除第一次返回原地址外,以后从容器中获取时都会以载入容器时的此Bean为原型,返回新的对象。通过<bean>元素的scope属性可以设置其作用域。<beanid="myClass"class="MyClass"scope="singleton"/>scope是作用域元素,将其bean元素加上scope作用域,分别填写singleton和prototype。然后进行测试。测试结果见PPT。得出结论,prototype原型作用域在每次获取时,得到的对象都不相同,而singleton单例作用域在每次获取时,得到的对象均相同。二、知识巩固回顾本章的学习目标,对本节课的知识点进行总结。讲解第一章课后作业相关部分。第4学时(理解):利用注解管理Bean(Bean注解的使用)一、知识讲解作用域的种类Bean相关的注解非常多,列举表格(见PPT)。配合表格初步讲解每个注解的作用。提示:常用的还有Service、Repository和Controller注解,这三个注解的作用均与Component完全相同,用不同的名称只是来区分每个注解的用途。注解的应用创建Book类、Student类和application.xml文件。见PPT。使用测试类,加上包扫描注解。<context:component-scanbase-package="com"/>扫描com包下的所有注解,使其生效使用@Value注解为属性赋值,同时使用@Component注解将其放到容器中。最后使用测试类将对象取出,查看赋值后的对象。二、知识巩固回顾本章的学习目标,对本节课的知识点进行总结。讲解第一章课后作业相关部分。第5学时(可选):Bean的生命周期一、知识讲解Bean的生命周期主要讲解Bean创建、初始化和销毁的过程。举例典型的使用生命周期的方式。自定义初始化和销毁时调用的方法。@PostConstructpublicvoidinit(){System.out.println("初始化");}@PreDestroypublicvoiddestroy(){System.out.println("销毁");}通过@PostConstruct注解与@PreDestroy注解来标注一个方法为初始化方法和销毁方法。随后调用此类,观察输出。二、知识巩固回顾本章的学习目标,对本节课的知识点进行总结。讲解第一章课后作业相关部分。第5-6学时(上机练习)学生根据教材中的操作步骤和教师的演示进行上机练习。主要内容:练习构造器注入和属性注入;练习集合对象的注入;练习Bean之间的属性传递;练习Bean之间的属性传递;练习Bean不同作用域下的取用;练习使用注解创建Bean对象并为其赋值。检查学生对相关知识点的掌握情况,监督学生完成任务。习题教材第3章习题教学后记课程名称第4章Spring中的AOP计划学时4+26学时内容分析此章首先介绍AOP的概念,之后分别通过注解和XML方式实现了Spring的AOP。接下来讲解了AOP切面的优先级,最后讲解了AOP的实现原理。教学目标与教学要求【知识目标】理解Spring中AOP的概念。理解AOP的实现原理与实现方式。【技能目标】掌握AOP的基本操作。掌握AOP配置的优先级。【思政育人目标】教学重点AOP基本概念、AOP中的核心概念、基于注解实现AOP和execution表达式教学难点AOP中的核心概念、基于注解实现AOP和execution表达式教学方式课堂讲解及PPT演示上机演示法与学生练习法教学过程提出需求,导入学习任务(1)思考面向切面编程的概念。如何在一个方法的前后添加执行的代码。(2)思考AOP的实现原理。思考JAVA动态代理的原理。第1学时:AOP简介(AOP核心概念)一、知识讲解AOP基本概念与OOP面向对象的思想类似,AOP指的是将重复加在业务前后的代码抽取,通过切面方式应用在方法上。举例讲解。创建普通的对象创建一个普通的BookHandler对象,对象中含有addBook()业务方法。编写针对于BookHandler的增强类首先以非AOP的方式完成日志记录的需求(代码见PPT),从非AOP代码看出,代码比较麻烦,侵入性较强。接下来使用AOP方式编写AOP增强类(增强类见PPT)。在类的上方需要附加@Aspect注解,标明此类为切面处理类。dealAddLog()方法上方的@Before注解是一个通知注解,表明被此注解附加的方法会在目标方法执行之前执行。配置Spring配置文件,向其中添加<aop:aspectj-autoproxy/>。测试调用被代理的方法在测试类中获取被代理类,调用其中的被增强方法,查看输出。AOP中的核心概念(重点)此概念需要通过示例为学生讲解。连接点(JoinPoint)连接点它表示一个时机。通知(Advice)通知表示的是在连接点上执行的某段代码。切点(PointCut)切点是匹配连接点的一个抽象概念。目标对象(Target)目标对象是指需要被处理的目标业务类。切面(Aspect)切面代指一个被AOP处理的类。织入(Weaving)织入是将通知添加到目标类具体连接点的过程。二、知识巩固回顾本章的学习目标,对本节课的知识点进行总结。讲解第一章课后作业相关部分。第2学时:Spring中AOP的实现方式(基于注解和基于XML实现AOP)一、知识讲解基于注解实现AOP(重点)展示AOP的注解表(见PPT)。简单讲解每个注解的含义。接下来通过表中的注解编写一个切面类,目标对象选用上节中的BookHandler类(切面类见PPT)。针对切面类详细讲解每个注解的作用。最后调用其中的被增强方法,查看目标方法前后的输出。观察输出结果,验证每个注解的作用,测试完成。execution表达式execution表达式的格式如下。 execution(<修饰符><返回类型><包名>.<类名>.<方法名>(<参数>))将addBook()方法作为目标方法,execution表达式完整写法如下。execution(publicvoidcom.BookHandler.addBook(Book))其中public修饰符、包、类可以省略,其他不可以省略。在开发中,只省略修饰符,通常的写法如下所示。 execution(voidcom.BookHandler.addBook(Book))当需要指定多个方法时,可以根据方法名的特征选用“*”作为参数。 execution(*com.*Handler.add*(**))针对以上代码,进行详细讲解,讲解清楚每个符号的作用详细见PPT。基于XML实现AOPXML方式配置AOP相比注解方式,步骤繁琐,书写量大,且不易于维护。XML实现AOP的方式在开发中很少使用,了解即可。列举XML中AOP元素表(见PPT),简单的讲解一下作用。以上节中的BookHandler类为目标对象,构造切面类(见PPT)。针对此切面类进行讲解,比较此切面类与注解切面类的不同。随后编写配置文件,配置切点的映射。完成后测试结果,结果合注解方式一样。二、知识巩固回顾本章的学习目标,对本节课的知识点进行总结。讲解第一章课后作业相关部分。第3学时:AOP中切面的优先级(基于注解和基于XML配置切面的优先级)一、知识讲解开篇:工作中用到的配置优先级的方法一般是@Order注解,其他方式仅供了解。基于注解与Order接口配置优先级基于注解(掌握)首先列举两个示例Aspect1和Aspect2,演示优先级之间的关系,测试在相同情况下执行顺序,得出结论Aspect1先切入。讲述:这两个切入类都切入同一个方法,默认按照切入类的字典顺序来排序。此时想要改变这两个切入类的执行顺序,就需要使用@Order注解随后加上@Order注解,演示使用方式,测试改变后的结果:Aspect2先切入。基于接口(了解)编写Ordered接口的实现方式。测试执行,效果与注解方式相同。基于XML配置优先级(了解)通过XML配置AOP中切面的优先级的方式在开发中不常用,了解即可。编写配置文件。使用</aop:config>元素配置一次即可,测试结果,与以上两种方式得出的结果一致。二、知识巩固回顾本章的学习目标,对本节课的知识点进行总结。讲解第一章课后作业相关部分。第4学时:AOP的实现原理(JDK与CGLib动态代理)一、知识讲解代理设计模式在了解动态代理之前,先要了解代理设计模式,讲解代理模式的UML类图(见PPT)。接下来使用示例完成一个代理设计模式。创建Drink接口.......讲解:以上示例将目标对象隐藏,用户只能接触代理对象,调用代理对象的方法,随后由代理方法调用目标对象的目标方法,完成代理。JDK动态代理以代理设计模式的示例为基础,创建测试类,在测试类中使用JDK动态代理创建代理对象(见PPT)。对示例进行讲解,注重理解,不要求学生会写。测试结果,代理成功。CGLib动态代理讲解:动态代理除JDK提供的方式之外还有CGLib提供的方式,称为CGLib动态代理,此代理方式不需要通过接口,而是通过继承子类的方式产生代理对象。编写示例,对示例进行讲解,注重理解,不要求学生会写。测试结果,代理成功。总结JDK代理与CGLib代理的不同点和相同点。二、知识巩固回顾本章的学习目标,对本节课的知识点进行总结。讲解第一章课后作业相关部分。第5-6学时(上机练习)学生根据教材中的操作步骤和教师的演示进行上机练习。主要内容:练习使用注解实现AOP;练习编写Execution表达式;练习配置切面的优先级;检查学生对相关知识点的掌握情况,监督学生完成任务。习题教材第4章习题教学后记课程名称第5章Spring与数据库的交互计划学时2学时内容分析本章介绍了Spring与数据库交互的相关知识,其中包括数据库配置和JDBCTemplate的增删改查操作。教学目标与教学要求【知识目标】理解SpringJDBC的概念。了解JDBCTemplate的常用API。【技能目标】掌握JDBCTemplate的使用。掌握JDBCTemplate封装Dao的方法。【思政育人目标】教学方式课堂讲解及PPT演示教学过程提出需求,导入学习任务(1)思考Spring中的数据库连接方式。JDBC操作数据库方式。Spring封装的数据库操作方式。第1学时:SpringJDBC基础(SpringJDBC的简介与配置)一、知识讲解SpringJDBC基础(重点理解)SpringJDBC由四个部分组成,这些部分分别为core(核心包)、object(对象包)、dataSource(数据源包)和support(支持包)其中较为核心的是core包中的JDBCTemplate类,与dataSource包下的DriverManagerDataSource类。DriverManagerDataSource类负责配置相关的数据库连接参数。JDBCTemplate类封装对数据库的操作,是操作数据库的工具类。SpringJDBC的配置创建普通的对象登录Maven官网,下载JDBC依赖。将下载完成的JAR包加入lib文件夹,将其加入框架。配置DriverManagerDataSource类与JDBCTemplate类配置连接示例(PPT),注重讲解一点:DriverManagerDataSource是连接的参数,JDBCTemplate类是连接工具。JDBCTemplate类需要DriverManagerDataSource支持。最终使用JDBCTemplate类来进行操作。二、知识巩固回顾本章的学习目标,对本节课的知识点进行总结。讲解第一章课后作业相关部分。第2学时:JDBCTemplate操作数据库(不重要仅了解)(DQL、DML和DDL操作)一、知识讲解开篇:此章只需要了解,不需要掌握,到后面讲解MyBatis操作时,会代替本节的JDBC操作。帮助学生复习DQL、DML和DDL操作。随后为学生演示每一种操作访问的方式(示例可提前准备好,随后直接为学生展示一边即可)。二、知识巩固回顾本章的学习目标,对本节课的知识点进行总结。讲解第一章课后作业相关部分。第3学时(理解):JDBCTemplate的注入一、知识讲解(此章节目的在于帮助学生配置随时在Spring中注入JDBCTemplate)配置XML配置文件通过@Autowire注解将JDBCTemplate注入到类中,随后测试访问即可(可参考PPT的示例)二、知识巩固回顾本章的学习目标,对本节课的知识点进行总结。讲解第一章课后作业相关部分。习题教材第5章习题教学后记课程名称第6章Spring事务计划学时4+26学时内容分析本章介绍了Spring与数据库交互的相关知识,其中包括数据库配置和JDBCTemplate的增删改查操作。教学目标与教学要求【知识目标】理解Spring事务的概念。理解Spring事务的管理方式。【技能目标】掌握事务的隔离级别与传播方式的使用。掌握Spring事务注解的使用。【思政育人目标】教学方式课堂讲解及PPT演示上机演示法与学生练习法教学过程提出需求,导入学习任务(1)思考事务的定义。事务在Spring中的管理。Spring事务的传播方式。第1学时:Spring事务概述(Spring的事务管理方式)一、知识讲解Spring的事务管理讲述:在开发中,通常使用Spring中的@Transactional注解处理事务。讲解@Transaction注解的作用。展示示例,在实例中操作数据库,模拟错误,随后使用@Transaction注解来处理此操作。配置applicationContext.xml文件,添加事务支持配置。通过对比展示不使用@Transaction注解和使用@Transaction注解这两种方式的不同。事务的管理方式讲述:事务的管理方式有很多种,在此简单介绍其中的两种,分别为编程式事务管理和声明式事务管理。编程式事务管理(可选)编程式事务:编写原生代码实现事务,由于操作较为繁琐,因此在开发中不使用。在配置文件中配置TransactionManager的Bean对象在代码中注入TransactionManager对象。编写示例,示例见PPT,讲解此段代码。声明式事务管理讲述:声明式事务管理是通过SpringAOP技术实现的。此种方式简单便捷,对代码的侵入性较小,是开发时常用的事务管理方法。声明式事务管理方式将事务相关的代码作为一个切面,织入到目标方法上。二、知识巩固回顾本章的学习目标,对本节课的知识点进行总结。第2学时:声明式事务的使用(重点)(基于注解与XML方式完成声明式事务)知识讲解讲述:注解方式实现声明式事务需要熟练掌握。XML方式实现声明式事务仅仅需要了解。基于注解完成声明式事务在Spring配置文件中启用事务注解在需要被事务处理的类或方法上加上@Transactional注解。讲解@Transacation注解的属性。编写示例,演示@Transacation注解的read-only和timeout属性操作。基于XML完成声明式事务(可选)讲解AOP中XML方式的相关元素配置,例如<tx:advice>元素、<tx:attributes>元素和<tx:method>元素。讲解这些事务元素的相关属性(见PPT表)创建ModifyAccount类,此类将会被作为目标类。在XML文件中配置切面和通知。通过Test类的执行观察最后结果,结果为转账金额没有变化。二、知识巩固回顾本章的学习目标,对本节课的知识点进行总结。讲解第一章课后作业相关部分。第3学时:事务的传播方式知识讲解讲述:当一个事务方法(标记为@Transactional的方法)调用了另一个事务方法时,事务之间将会出现冲突,即方法无法选择使用哪个事务,为解决此问题,Spring提供了七种事务传播方式。给出模板示例,并讲解此代码的基本操作,为后续七种事务讲解做铺垫。publicvoidmain(){insertA(a);//将a插入A数据库test();}//其他类中的方法publicvoidtest(){insertB(b);//将b插入B数据库throwException;insertB(c);//将c插入B数据库}Spring的事务管理讲解每种事务的隔离级别。PROPAGATION_REQUIRED讲解此种隔离级别的作用:如果当前没有事务,则自己新建一个事务,如果当前存在事务,则加入这个事务。列举示例(见PPT),讲解a与b的数据库事务的执行流程。讲解完毕后,提出在后续的NESTED传播方式中会与此例作对比。PROPAGATION_REQUIRES_NEW讲解此种隔离级别的作用:如果当前没有事务,则新建一个事务,如果当前存在事务,则仍然新建一个事务。列举示例(见PPT),讲解a与b的数据库事务的执行流程。PROPAGATION_SUPPORTS讲解此种隔离级别的作用:如果当前没有事务,就不用事务,如果当前存在事务,则使用此事务。列举示例(见PPT),讲解a与b的数据库事务的执行流程。PROPAGATION_NOT_SUPPORTED讲解此种隔离级别的作用:始终以非事务方式执行,如果当前存在事务,则挂起当前事务。列举示例(见PPT),讲解a与b的数据库事务的执行流程。PROPAGATION_MANDATORY讲解此种隔离级别的作用:当前存在事务,则加入当前事务,如果当前事务不存在,则直接抛出异常。列举示例(见PPT),讲解a与b的数据库事务的执行流程。PROPAGATION_NEVER讲解此种隔离级别的作用:不使用事务,如果当前事务存在,则抛出异常。列举示例(见PPT),讲解a与b的数据库事务的执行流程。PROPAGATION_NESTED讲解此种隔离级别的作用:如果当前事务存在,则在嵌套事务中执行,否则新建一个事务。列举示例(见PPT),讲解a与b的数据库事务的执行流程。对比PROPAGATION_REQUIRED隔离级别。嵌套事务表示此事务虽然原事务中运行,但是在此嵌套事务中发生的错误可以被捕获,不影响原事务的执行。对比此种传播方式与REQUIRED_NEW传播方式的区别,总结NESTED传播方式的要点:嵌套事务中异常可以被原事务捕捉,从而不影响原事务的运行,而原事务发生异常后,嵌套事务会随着原事务一起回滚。二、知识巩固回顾本章的学习目标,对本节课的知识点进行总结。讲解第一章课后作业相关部分。第4学时:Spring事务失效问题一、知识讲解讲述:在日常开发中经常会遇到Spring事务失效问题,本节介绍导致Spring事务失效的原因。同一个类事务方法之间的调用在同一个类中非事务方法调用其他事务方法会导致事务方法失效。根据示例(示例见PPT)讲解测试类以及同一个类中事务方法调用失败的原因异常被捕获如果在运行过程中,异常被捕获,则该事务将无法检测到错误,不会回滚数据。根据示例讲解代码(示例见PPT)。事务配置的隔离级别讲述:当事务的隔离级别配置为SUPPORT时,当前没有事务的情况下,不会启用事务。数据库不支持事务讲述:当使用MySQL数据库时,数据库引擎设置为MyISAM是不支持事务的。二、知识巩固回顾本章的学习目标,对本节课的知识点进行总结。讲解第一章课后作业相关部分。第5-6学时(上机练习)学生根据教材中的操作步骤和教师的演示进行上机练习。主要内容:使用注解方式编写声明式事务,练习隔离级别的使用。检查学生对相关知识点的掌握情况,监督学生完成任务。习题教材第5章习题教学后记课程名称第7章MyBatis基础计划学时2+24学时内容分析本章首先介绍了ORM框架和MyBatis的基本知识,然后介绍了MyBatis的工作流程和核心组件,接下来以一个示例讲解了MyBatis的简单示例,最后讲解了MyBatis的接口开发方式教学目标与教学要求【知识目标】了解ORM框架的概念。了解MyBatis的功能架构和核心思想。理解MyBatis的基本概念。【技能目标】掌握MyBatis的下载和安装。掌握MyBatis入门程序的编写。【思政育人目标】教学重点SqlSessionFactory与SqlSession,MyBatis接口开发教学方式课堂讲解及PPT演示上机演示法与学生练习法教学过程提出需求,导入学习任务(1)思考ORM框架的工作原理。(2)思考MyBatis框架的工作原理。第1学时:MyBatis概述(ORM,MyBatis框架)一、知识讲解ORM框架讲述:ORM框架是一个对象-关系映射的系统化解决方案,负责将数据库查询的数据封装为实体类对象。实体类与数据库之间通过ORM框架相互映射,应用程序可以直接通过ORM框架取得映射完成的实体类。MyBatis简介MyBatis是一款优秀的ORM框架,它需要手动提供POJO、SQL语句并匹配映射关系。MyBatis允许开发人员利用数据库的各项功能,例如存储过程、视图、复杂查询等,完成复杂的操作,具有高度灵活、可优化和易于维护等优点。MyBatis支持动态列、动态表明和存储过程,同时提供了简易的日志、缓存和级联功能。二、知识巩固回顾本章的学习目标,对本节课的知识点进行总结。讲解第一章课后作业相关部分。第2学时:MyBatis核心模块(SqlSessionFactory与SqlSession)一、知识讲解MyBatis工作流程讲解MyBatis工作流程。编写配置文件与映射文件MyBatis通过配置文件和映射文件生成SqlSessionFactory对象通过SqlSessionFactory对象生成SqlSession对象在一次连接中,通过SqlSession对象操作数据库,SqlSession通过底层的Executor执行器执行对应操作SqlSessionFactory与SqlSession(重点)讲述:SqlSessionFactory与SqlSession是MyBatis中的核心类,它采用工厂设计模式构建,负责创建SqlSession对象。构建SqlSessionFactory对象讲解SqlSessionFactoryBuilder对象的方法。构建SqlSessionFactory对象需要使用SqlSessionFactoryBuilder类,调用SqlSessionFactoryBuilder类中的builder()方法即可创建SqlSessionFactory对象。获得配置文件流之,将其作为参数传入SqlSessionFactoryBuilder的build()方法中,调用build()方法,返回值就是SqlSessionFactory对象。使用SqlSessionFactory对象讲解SqlSessionFactory对象的方法。在SqlSessionFactory类中存在openSession()方法,此方法可以创建SqlSession对象,也可以在该方法中传入参数来设置创建的SqlSession对象。使用SqlSession对象(重点)SqlSession对象是MyBatis中的核心类对象。SqlSession对象提供了执行SQL,提交事务或回滚事务,使用映射器等方法,在方法中需要指定映射文件中的方法。对应PPT中SqlSession对象的查询方法进行讲解,具体方法见PPT中的SqlSession对象表格。二、知识巩固回顾本章的学习目标,对本节课的知识点进行总结。讲解第一章课后作业相关部分。第3学时:MyBatis应用示例(MyBatis下载,MyBatis简单操作)一、知识讲解MyBatis的下载具体操作如PPT所示。下载MyBatis依赖解压MyBatis依赖添加MyBatis的Jar包MyBatis的简单应用创建数据库表创建数据库Dog表添加数据查看Dog表数据创建实体类创建一个Dog的实体类(见PPT)。创建配置文件在src目录下新建mybatis-config.xml。讲解MyBatis配置文件的作用。创建映射文件创建mapper文件夹创建Dog类对应的映射文件讲解映射文件中<mapper>元素、<select>元素和namespace属性的作用。在MyBatis配置文件中添加<mappers>元素(见PPT),将映射文件添加到MyBatis文件当中。测试数据库操作创建测试类在此类中使用InputStream将MyBatis配置文件传入到SqlSessionFactoryBuilder类的Builder()方法中,获得SqlSession对象使用SqlSession进行增删改查SqlSession的增删改查操作SqlSession的新增操作在DogMapper.xml文件中的<mapper>元素中加入映射信息<insertid="insertDog"parameterType="com.Dog">insertintodog(name,age)value(#{name},#{age})</insert>利用<insert>元素创建一个插入操作。parameterType属性代表传入的参数对象类型。在<insert>元素内使用“#{}”方式取用参数对象中的属性新建Test类(见PPT),测试插入语句的执行SqlSession的修改操作在DogMapper.xml文件中的<mapper>元素中加入映射信息<updateid="updateDog"parameterType="java.util.Map">updatedogsetage=#{age}whereid=1</update>利用<update>元素创建一个更新操作。讲解parameterType属性的作用。在<update>元素内使用“#{}”方式取用Map中的属性。在com包下创建TestUpdate类(见PPT),测试更新语句的执行。SqlSession的删除操作在DogMapper.xml文件中的<mapper>元素中加入映射信息<deleteid="deleteDog">deletefromdogwhereid=#{id}</delete>利用<delete>元素创建一个删除操作。在<update>元素内使用“#{}”方式取用属性。在com包下创建TestDelete类(见PPT),测试删除语句的执行。SqlSession的模糊查询在DogMapper.xml文件中的<mapper>元素中加入映射信息。<selectid="selectByName"resultType="com.Dog">select*fromdogwherenamelike'%${name}%'</select>利用<select>元素创建一个查询操作,resultType属性为返回值类型,返回值类型为Dog类,在<select>元素内使用“${}”方式取用属性。讲解“${}”的作用,分析“${}”和“#{}”的不同。在com包下创建TestSelectByName类(见PPT),测试模糊查询语句的执行。二、知识巩固回顾本章的学习目标,对本节课的知识点进行总结。讲解第一章课后作业相关部分。第4学时:MyBatis接口开发一、知识讲解使用XML文件的方式完成开发,调用时必须获取后才能调用,为解决此问题,MyBatis提供了接口开发的方式。创建目录在src目录下创建com文件夹,在com文件夹下创建mapper文件夹和pojo文件夹。创建实体类与数据库在pojo文件夹下创建Dog类,并在数据库中创建Dog表。创建配置文件在resource文件夹下创建MyBatis配置文件,随后编写配置文件(见PPT)。讲解<mapper>元素中,<package>元素的作用。创建映射文件与mapper接口文件在mapper文件夹下创建DogMapper文件(见PPT)。文件名命名为DogMapper,此名需要与映射文件名保持一致。DogMapper接口中的方法名,应与映射文件中操作的id保持一致。编写DogMapper对应的映射文件(见PPT)。<mapper>元素的namespace属性需要填写对应mapper接口的绝对路径此外<select>元素中的id属性需要和mapper接口中的方法名对应。创建测试文件在com文件夹下创建Test类(见PPT)。讲解Test类中getMapper()方法,使同学理解这种使用对象进行操作的概念。展示整体的的目录结构。二、知识巩固回顾本章的学习目标,对本节课的知识点进行总结。讲解第一章课后作业相关部分。习题教材第1章习题教学后记第3-4学时(上机练习)学生根据教材中的操作步骤和教师的演示进行上机练习。主要内容:编写MyBatis配置文件,并通过配置文件生成SqlSession对象,使用SqlSession对象进行数据库操作。练习使用MyBatis接口开发。检查学生对相关知识点的掌握情况,监督学生完成任务。课程名称第8章MyBatis核心配置计划学时4+26学时内容分析此章分别针对MyBatis的配置文件和映射文件进行讲解。教学目标与教学要求【知识目标】了解配置文件与映射文件的结构。【技能目标】掌握MyBatis配置文件的运用。掌握MyBatis映射文件的运用。【思政育人目标】教学重点<environments>元素、<select>查找元素、<insert>增加、<delete>删除、<update>修改元素和<resultMap>结果集元素教学难点<resultMap>结果集元素教学方式课堂讲解及PPT演示上机演示法与学生练习法教学过程 提出需求,导入学习任务(1)思考MyBatis的核心配置。掌握MyBatis的配置文件和映射文件。掌握MyBatis配置文件和映射文件的结构第1-2学时:MyBatis配置文件一、知识讲解配置文件概览MyBatis规定了其配置文件的层次结构(见PPT)。讲解层次结构配置文件中元素先后顺序是固定的,需要按照官方提供的顺序编写配置文件。<properties>元素<properties>是一个用于配置属性的元素,MyBatis支持两种方式配置属性,接下来详细介绍这两种方式。配置文件内设置属性讲解<property>元素的使用。将数据库连接的参数通过<property>元素写到上方,随后使用"${myDriver}"的方式引用。配置文件引用外部资源文件在src目录下新建perties文件,将数据库配置写入其中。在配置文件中使用<properties>元素的resource属性,指定perties文件。使用“${}”引用perties文件中的内容。<settings>元素讲解:<settings>元素控制着MyBatis运行时的状态和行为。讲解<settings>元素表格(见PPT)。讲解<settings>元素的配置样例(见PPT)。<typeAliases>元素提出映射文件中,resultType属性的包名过长问题。介绍<typeAliases>元素,使用<typeAliases>元素设置别名来解决此问题。演示<typeAliases>元素在单个目录指定的使用方法。演示<typeAliases>元素在多个目录下,使用<package>元素指定包名,进行批量缩减。<typeHandlers>元素(可选)讲解:TypeHandler是一个负责处理数据库列到属性之间的转换工具。从数据库的int类型转化为Java中的Integer类型就需要TypeHandler来处理。讲解常见的TypeHandler(表格见PPT)。当JDBC类型与Java类型不匹配时,就需要自定义TypeHandler。举例数据库Integer字段到Java中Boolean类型间的转换(代码见PPT)。<objectFactory>元素(可选)讲解:ObjectFactory负责创建结果集对象。结果集需要映射为对象时就需要用到ObjectFactory。当需要干预结果集对象的创建过程时,就需要创建自定义ObjectFactory。讲解自定义ObjectFactory的步骤(见PPT)。<environments>元素<environments>元素主要的作用是配置数据库连接环境。列举常用的配置项,讲解每个配置项的作用(见PPT)。讲解<environments>元素中<dataSource>元素的三个type属性。UNPOLLED表示不使用连接池进行连接,即每一次连接都会新建。POOLED表示连接池,分为三种情况讲解,当连接池有连接、没连接有位置、没连接没位置时连接池的分配。<mappers>元素讲解:在MyBatis配置文件当中,<mappers>元素用来引入映射文件。介绍<mappers>元素引入映射文件的两种方法。一种为资源路径直接引用,利用<mapper>元素的resource属性指定资源。另一种为扫描包中的全部映射器接口,使用<package>元素的name属性指定包。二、知识巩固回顾本章的学习目标,对本节课的知识点进行总结。讲解第一章课后作业相关部分。第1-2学时:MyBatis映射文件一、知识讲解映射文件概览讲解:映射文件是MyBatis中的重要组成部分,它包含了开发中编写的SQL语句、参数、结果集等。讲解映射文件的生效条件:需要被引入到配置文件中才能生效。讲解映射文件的文件结构(见PPT)。查找元素讲解:<select>元素为查找所用的元素,此元素负责编写查询的SQL语句,参数类型和返回值类型等信息。举例编写一个查询语句(见PPT),详细讲解其中的每一个参数。详细讲解<select>元素的每一个属性(属性表见PPT)。增加删除修改元素讲解:<insert>、<delete>和<update>元素分别对应增加删除修改功能。讲解<insert>元素的示例(见PPT),并且指出parameterType属性的作用。讲解<delete>元素的示例(见PPT),并且指出#{}在单一值情况下的赋值方法。讲解<update>元素的示例(见PPT)。讲解:增删改操作均返回操作影响的行数。结果集元素(难点)讲解:<resultMap>元素为映射结果集元素,负责数据库返回值与对象之间的映射。根据示例讲解<resultMap>元素的各个标签,强调数据库数据通过resultMap映射到实体类的过程。设置主键的映射设置列的映射设置对象类型映射设置集合类型映射<sql>元素讲解:<sql>元素设计的初衷在于简化列名的书写。举例展示<sql>元素的作用。使用<include>元素来取用<sql>元素的内容二、知识巩固回顾本章的学习目标,对本节课的知识点进行总结。讲解第一章课后作业相关部分。第5-6学时(上机练习)学生根据教材中的操作步骤和教师的演示进行上机练习。主要内容:部署安装Spring相关环境和软件,并完成Bean对象在Spring容器中的添加与获取。检查学生对相关知识点的掌握情况,监督学生完成任务。习题教材第8章习题教学后记课程名称第9章MyBatis进阶计划学时4+26学时内容分析本章首先介绍了MyBatis的缓存机制,然后介绍了MyBatis动态SQL的使用,最后讲解了MyBatis的关联查询与注解开发。教学目标与教学要求【知识目标】了解MyBatis缓存的作用。【技能目标】掌握MyBatis动态SQL的运用。掌握MyBatis级联查询的方法。掌握MyBatis注解开发的方法。【思政育人目标】教学重点动态SQL<if>、<where>、<set>、<trim>、<choose>、<when>、<otherwise>和<foreach>元素,一对一级联查询,一对多级联查询,多对多级联查询。教学难点一对多级联查询,多对多级联查询。教学方式课堂讲解及PPT演示上机演示法与学生练习法教学过程 提出需求,导入学习任务(1)思考MyBatis的缓存,怎样提高查询效率。MyBatis针对于同一个类的缓存,对不同类的缓存。(2)思考MyBatis的动态SQL,怎样灵活的使用SQL语句。(3)思考MyBatis的级联查询。一对多,多对多。第1学时:MyBatis缓存一、知识讲解MyBatis缓存简介讲解:MyBatis提供了两种缓存方式,一种为针对于SqlSession的缓存,此种缓存方式默认开启;另一种为针对于全局的缓存,需要手动开启。一级缓存概述讲解:第一次查询,MyBatis会将查询结果放在缓存中,当再次使用这个SqlSession进行同一个查询时,直接将缓存中的数据返回。讲解一级缓存的流程图(见PPT),突出“同一SqlSession”的查询。讲解什么规定为同一个查询(如下)。1)传入的statementId是否相同2)查询时结果集范围是否相同3)查询的最终SQL语句是否相同4)传递给Statement的参数是否相同二级缓存概述讲解:第一次查询,MyBatis会将查询结果放在缓存中,当再次进行同一命名空间的查询时,无论SqlSession是否相同,直接将缓存中的数据返回。讲解二级缓存的流程图(见PPT),突出“同一NameSpace”的查询。创建示例演示一级缓存和二级缓存(见PPT)。创建数据库构造目录创建实体类创建配置文件与数据库配置创建好环境后,测试一级缓存的效果:将二级缓存禁用,并且开启日志,使用同一个SqlSession发起多次查询。结果是两次查询只有一次日志,得出结论:相同SqlSession一级缓存生效。测试不同SqlSession查询时一级缓存的效果:将二级缓存禁用,使用不同的SqlSession发起多次查询。结果是两次查询有两次日志,得出结论:不同SqlSession一级缓存失效。测试不同SqlSession同一命名空间查询时二级缓存的效果:将二级缓存启用,使用不同的SqlSession同一命名空间发起多次查询。结果是两次查询有一次日志。得出结论:二级缓存生效,一级缓存失效。测试不同SqlSession同一命名空间查询时,两次查询之间穿插更新语句。结果:两次查询均执行。测试开启MyBatis二级缓存的脏读问题,跨命名空间进行操作。得出结论:尽量避免修改其他命名空间的数据。二、知识巩固回顾本章的学习目标,对本节课的知识点进行总结。讲解第一章课后作业相关部分。第2学时:动态SQL一、知识讲解动态SQL简述讲解:动态SQL是MyBatis提供的拼接SQL的强大机制。初步讲解所有的动态SQL的标签(表格见PPT)。<if>元素构造需求:需要判断name与age属性是否为空,如果为空则不附加对应的筛选条件。利用<if>元素可以判断属性是否为空。(见PPT)数据准备创建目录创建实体类创建配置文件和数据库文件创建映射文件与Mapper接口使用<if>标签来完成“判断name与age属性是否为空”的需求,并抛出空属性筛选的问题。编写测试类<where>、<set>、<trim>元素<where>元素讲解:当<where>元素中存在内容时,自动拼接“where”字符串,并且将<where>元素中第一个“and”字符串删除;回收问题:单<if>元素不能解决空属性筛选的问题,在本例中利用<where>元素解决。编写示例,解决上一节的空属性筛选问题(见PPT)。<set>元素讲解:<set>元素用于更新操作的SQL拼接,当<set>元素中存在内容时,自动拼接“set”字符串,并且将<set>元素中最后的“,”字符串删除。编写示例讲解(见PPT)<trim>元素<trim>元素的使用较为复杂,拼装的灵活性极高。讲解<trim>元素的所有的常用属性<prefix>、<prefixOverride>、<suffix>、<suffixOverride>。编写示例模拟<set>和<where>元素的功能。<choose>、<when>、<otherwise>元素讲解:在开发中经常遇到,当判断某一个条件不生效时执行另一个操作的情况,此时就需要使用<choose>、<when>、<otherwise>元素。举例当name和age元素存在时,附加,如果都不存在,附加id的判断(见PPT)。<foreach>元素讲解:<foreach>元素可以循环拼接SQL。提出需求查询id为1,2,13的数据。使用<foreach>元素编写示例实现需求。讲解<foreach>元素中的属性。<bind>元素讲解:<bind>元素为命名元素,它可以创建一个变量井将其绑定到上下文中,方便后续重复使用。编写代码讲解<bind>元素的作用(见PPT)二、知识巩固回顾本章的学习目标,对本节课的知识点进行总结。讲解第一章课后作业相关部分。第3学时:MyBatis关联映射一、知识讲解关联关系概述讲解:表与表之间的关系可以分为三种,分别为“一对一”,“一对多”和“多对多”。分别为学生讲解“一对一”,“一对多”和“多对多”的含义。一对一级联查询创建学生类和卡片类,它们之间的关系是一对一,随后使用MyBatis编写完整的查询过程。示例的编写目标:查询出所有的学生类,学生中含有卡片类,因此也需要进行级联查询来查询卡片类。(见PPT)详细讲解<ResultMap>,以及其中<association>元素的使用。一对多级联查询创建班级类与学生类,一个班级对应多个学生,使用MyBatis编写完整的查询过程。示例的编写目标:直接查询出所有的班级,每个班级附带着此班级对应的学生。(见PPT)详细讲解<ResultMap>元素,突出<collection>元素与<association>元素的对比。多对多级联查询创建学生类与教师类,一个学生对应多个教师,一个教师对应多个学生,使用MyBatis编写完整的查询过程。示例的编写目标:直接查询出所有的学生,每个学生附带着此学生对应的班级。(见PPT)二、知识巩固回顾本章的学习目标,对本节课的知识点进行总结。讲解第一章课后作业相关部分。第4学时:MyBatis注解开发一、知识讲解注解开发简介讲解:使用注解开发时,无需创建映射文件,直接在Mapper接口文件的方法上通过注解编写SQL语句即可。讲解@Select、@Insert、@Update、@Delete、@Param注解的作用。注解开发的简单应用创建示例讲解注解的使用(见PPT)。在Mapper接口的方法上添加相应的注解,完成增删改查操作。讲解:在实际开发中,SQL语句比较复杂时,一般将注解方式与XML方式混合使用,复杂SQL使用XML映射文件编写,简单SQL使用注解开发。二、知识巩固回顾本章的学习目标,对本节课的知识点进行总结。讲解第一章课后作业相关部分。第5-6学时(上机练习)学生根据教材中的操作步骤和教师的演示进行上机练习。主要内容:练习多对多级联映射,练习动态SQL的编写。检查学生对相关知识点的掌握情况,监督学生完成任务。习题教材第9章习题教学后记课程名称第10章SpringMVC计划学时5+27学时内容分析此章介绍了SpringMVC的基本概念和核心组件,通过示例讲解了SpringMVC的基本使用,然后讲解了SpringMVC的常用注解和Controller中的参数绑定,最后讲解了开发中常用的JSON传输方式。教学目标与教学要求【知识目标】理解MVC的思想模式。理解SpringMVC的工作流程。【技能目标】掌握SpringMVC的简单应用。掌握SpringMVC常用注解的使用方法。【思政育人目标】教学重点@RequsetMapping注解、@RequestParam注解、@PathVariable注解、@RequestBody注解、SpringMVC中复杂类型的传输。教学方式课堂讲解及PPT演示上机演示法与学生练习法教学过程 提出需求,导入学习任务(1)思考SpringMVC的工作流程和业务的处理方式第1学时:SpringMVC概述和核心组件一、知识讲解SpringMVC简介讲解:SpringMVC是Spring框架中的一个模块,也是一个MVC框架,它提供了一个前端控制器来分发请求。SpringMVC灵活、高效且配置方便,与其他MVC框架相比,它可以与Spring无缝集成。MVC模式讲解:MVC是一种开发模式,它把整个Web访问的流程为为四个层级,分别为Controller层、Service层、DAO层(又称Mapper层)和POJO层。根据模型图讲解MVC的访问流程(模型图见PPT)。展示日常Web开发时的目录结构(模型图见PPT)。详细讲解每个目录的作用(详细讲解见PPT)。SpringMVC核心组件(了解)讲解:Spring通过一系列的组件来实现SpringMVC的功能,这些组件包括DispatcherServlet(前端控制器)、HandlerMapping(处理器映射器)、Handler(处理器)、HandlerAdapter(处理器适配器)和ViewResolver(视图解析器)等。讲解所有组件的相关作用(详细见PPT)。DispatcherServlet负责拦截客户端的请求并分发给其他组件。HandlerMapping是一个Map集合,它表示URL和处理类之间的映射。Handler处理器是一个负责处理请求的方法。HandlerAdapter是利用适配器设计模式设计的适配类ViewResolver负责解析ModelAndView对象二、知识巩固回顾本章的学习目标,对本节课的知识点进行总结。讲解第一章课后作业相关部分。第2学时:SpringMVC简单应用一、知识讲解搭建SpringMVC的环境,编写示例,完成一次web访问。创建应用与目录。创建应用并引入SpringMVC的JAR包。编写applicationContext.xml文件,讲解基础配置。编写springMVC-config.xml文件,讲解基础配置。创建web.xml。编写StudentController,在代码中使用的注解可初步介绍。发布,运行并访问。二、知识巩固回顾本章的学习目标,对本节课的知识点进行总结。讲解第一章课后作业相关部分。第3学时:SpringMVC常用注解一、知识讲

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论