《JavaEE企业级应用开发案例教程》教案第18课MyBatis基础(1).docx

上传人:李司机 文档编号:7016840 上传时间:2024-04-12 格式:DOCX 页数:7 大小:35.51KB
返回 下载 相关 举报
《JavaEE企业级应用开发案例教程》教案第18课MyBatis基础(1).docx_第1页
第1页 / 共7页
《JavaEE企业级应用开发案例教程》教案第18课MyBatis基础(1).docx_第2页
第2页 / 共7页
《JavaEE企业级应用开发案例教程》教案第18课MyBatis基础(1).docx_第3页
第3页 / 共7页
《JavaEE企业级应用开发案例教程》教案第18课MyBatis基础(1).docx_第4页
第4页 / 共7页
《JavaEE企业级应用开发案例教程》教案第18课MyBatis基础(1).docx_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《《JavaEE企业级应用开发案例教程》教案第18课MyBatis基础(1).docx》由会员分享,可在线阅读,更多相关《《JavaEE企业级应用开发案例教程》教案第18课MyBatis基础(1).docx(7页珍藏版)》请在三一办公上搜索。

1、课题MyBatis基础(1)课时2课时(90min)教学目标知识目标:(1)了解MyBatis的特点和下载方法,MyBatis的工作流程(2)了解MyBatis的核心对象、核心配置文件能力目标:能够下载安装MyBatis素质目标:工欲善其事必先利其器,做事情之前,前把需要准备的东西准备好,戒骄戒躁,明确目标教学重难点教学重点:MyBalis基础知识,MyBatis下载,MyBatis的工作流程教学难点:MyBatiS的工作流程教学方法问答法、讨论法、讲授法教学用具电脑、投影仪、多媒体课件、教材教学过程主要教学内容及步骤课前任务【教师】布置课前任务,和学生负责人取得联系,让其提醒同学通过APP或

2、其他学习软件,完成课前任务请同学们查找SpringJDBC以及传统JDBC在操作数据库时存在哪些不便,并进行归纳总结。【学生】完成课前任务考勤【教师】使用APP进行签到【学生】班干部报请假人员及原因问题导入【教师】提出以下问题:通过前面知识的讲解,同学们明确了SpringJDBC简化了传统JDBC的操作,那么有没有其他更进一步简化的方式呢?【鞋】思考、传授新知【教师】多媒体观看MyBatis基础“(详见教材),让学生了解MyBatis基本概念及特点,MyBatis下载,MyBatis的工作流程,MyBatis的核心配者一.MyBatiS概述*【教师】讲解MyBatiS基本概念及特点MyBati

3、s是T开源、轻量级的数据持久层框架,它支持定制SQL语句的高级映射。MyBatis是一个半自动对象关系映射(objectrelationalmapping.ORM)框架,它使用简单的XML文件或注解在对象模型和关系型数据库之间建立映射关系,通过对象去操作数据库表中的数据。MyBatiS内部封装了JDBC,简化了加载驱动、创建连接、创建Statement等烦琐的过程。MyBatiS具有以下特点.(1)MyBatiS是免费开源的,它是最简单的持久层框架,小巧且简单易学。(2)MyBatis与JDBC相比,减少了至少50%的代码量。(3)MyBatis在XML文件中编写SQL语句,和程序逻辑代码分离

4、,降低了耦合度。这样就不会对应用程序或数据库的现有设计有任何影响,便于统一管理和优化,也提高了代码的可重用性。(4)MyBatis提供了XML元素,支持编写动态SQL语句。(5)MyBatiS提供了映射元素,支持JaVa对象属性与数据库字段的关系映射。二、MyBatis下载【教师】介绍MyBatiS下载地址,文件目录结构MyBatis是一个独立的框架,在使用前需要下载它的JAR包,可以通过解压下载后的压缩包文件,将生成mybatis-3.5.11文件夹,其目录结构如图10-2所示(详见教材)其中,mybatis-3.5.Iljar是MyBatis的核心包,mybaiis-3.5.1Lpdf是M

5、yBatis的官方使用手册,Iib文件夹存放MyBatis的依赖包,如图10-3所示(详见教材)【课堂问答】【教师】随机邀请学生回答以下问题同学们通过上述网址在下载MyBatiS时,MyBatis的最新稳定版本已经不是3.5.U了,请同学们自行总结最新版本相对3.5.11版本做了哪些修改。【学生】聆听、思考、回答【教师】总结学生的回答三、MyBatiS的工作流程【教师】讲解MyBatiS的工作流程在使用MyBatis进行数据库操作之前,需要先了解MyBatis的工作流程,如图10-4所示(详见教材)从图I(M可以看出,使用MyBatiS操作数据库时,一般经过以下几个步骤。(1)读取核心配置文件

6、。mybatis-config.xml是MyBatis的全局配置文件,名称可自定义。(2)加载映射文件。mapper.xml是SQL映射文件,名称可自定义,需要在核心配置文件中加载。(3)创建会话工厂。根据MyBatis的核心配置文件创建会话工厂SqlSessionFactorye(4)创建会话对象。通过SqlSeSSiOnFaCtOry创建会话对象SqlSession,提供执行SQL语句的所有方法。(5)创建执行器。创建执行器Executor用于操作数据库。(6)封装映射信息.Executor将待执行的SQL语句的信息封装到MappedStatement对象中,存储要映射的SQL语句的唯一标

7、识、参数等,同时动态生成需要执行的SQL语句.(7)操作限库。根据动态生成的SQL语句操作数据库.(8)输出结果映射。执行SQL语句后,通过MappedStatement对象将输出结果映射到Java对象中。【课堂问答】【教师】随机邀请学生回答以下问题请同学们根据自己的理解,用自己的话总结归纳MyBatiS的工作流程。【学生】聆听、思考、回答【教师】总结学生的回答四、MyRatis的核心配置【教师】讲解MyBatis的核心对象:SqisessionFactoryBuiIder对象、SqlSessionFactory对象和SqISession对象MyBatis有3个基本要素:MyBatis的核心对

8、象、MyBatiS的核心配置文件和MyBatis的映射文件。(一)MyBatis的核心对象使用MyBatis实现数据持久化,主要涉及3个核心对象,分别是SqISeSSiOnFaCtOryBUiIder对象、SqlSessionFactory对象和SqlSession对象。1 .SqisessionFactoryBuilder对象每个MyBatis应用程序都以一个SqlSessionFactory对象为核心,而SqlSessionFactory对象是通过SqisessionFacioryBuilder对象的build()方法创建的。SqisessionFactoryBuilder提供了多个重载的

9、build。方法,按照配置信息的传入方式,这些重载的build()方法可以分成3种,其语法格式如下。build(InputStreaminputStream,Stringenvironment,Propertiesproperties)build(Readerreader,Stringenvironment,Propertiesproperties)build(Configurationconfig)其中,EputStream是字节流,reader是字符流,config是Configuration对象,都用于获取核心配置文件的信息;environment是要加载的环境,包括事务管理器和数据源,

10、properties是要加载的properties文件,都是可选参数。例如,使用上述3种方式获取核心配置文件mybatis-config.xml的信息,创建SqlSeSsionFaciory对象,可以使用下面代码实现。通过字节流读取核心配置文件mybatis-config.xmlInputStreaminputStream=Resources.getResourceAsStream(mybatis-config.xml);创建SqisessionFaclory对象SqlSessionFactoryssfl=newSqlSessionFactoryBuilder().build(inputStr

11、eam);通过字符流读取核心配置文件mybatis-config.xmlReaderreader=Resources.getResourceAsReader(,mybatis-config.xml);/创建SqlSessionFactory对象SqlSessionFactoryssf2=newSqlSessionFactoryBuilder().build(reader);/通过Configuration对象读取核心配置文件mybatis-config.xmlConfigurationconfig=Resources.getConfiguration(mybatis-config.xml);/

12、创建SqlSessionFactory对象SqlSessionFactoryssf3=newSqlSessionFactoryBuilder().build(config);SqisessionFactoiyBuilder对象的最大特点就是用过即丢,即创建SqlSessionFactory对象之后,SqisessionFacioryBuilder对象就不存在了。因此,SqisessionFactoryBuiIder对象的最佳作用域是方法体内,也就是说该对象属于局部变量。【课堂问答】【教师】随机邀请学生回答以下问题请同学们总结归纳,通过字节流读取、字符流读取、Connguration对象读取核心

13、配置文件时,分别调用了Resources类的什么方法?【学生】聆听、思考、回答【教师】总结学生的回答2 .SqlSessionFactory对象SqlSessionFactory是工厂接口而不是实现类,它提供了多个重载的OPenSeSSiOn()方法,主要用于创建SqlSession对象。OPenSeSSiOno方法常见的用法如下。SqISessionsession=ssf.openSession(true);其中,SSf是SqlSessionFactory对象,参数为true表示自动提交事务。如果参数为false,当对数据库执行增改删操作后,需要通过SqlSession对象的Commito方

14、法提交事务,数据库的写操作才会生效。SqISeSSiOnFaCtOry对象一旦创建,将在应用程序的整个运行期间始终存在,且该对象只能存在一个。因此,SqISeSSiOnFaelory对象的最佳作用域是应用程序的整个生命周期,并且该对象是单例模式。3 .SqISession对象SqlSession对象主要用于执行数据库操作,类似JDBC中的Connection.SqlSession对象可以直接执行已映射的SQL语句,其常用的方法如表10/所示(详见教材)【课堂问答】【教师】随机邀请学生回答以下问题请同学们列举SqlSeSSiOn对象常用的方法,并说明其使用方法及其作用。【学生】聆听、思考、回答【

15、教师】总结学生的回答每次访问数据库时都需要创建SqISeSSiOn对象每个SqISeSSiOn对应一次数据库会话。因此SqISeSsion对象的最佳作用域是一次会话请求或一个方法。(二)MyBatis的核心配置文件MyBalis的核心配置文件主要用于配置属性文件、运行环境和MyBatis的全局信息等,其结构如下。v!-类命名”!-对象工厂Venvironmentsx!-运行环境VenVirOnmentVtransactionManager/!-数据源一!-映射器上述结构中,configuration元素是整个核心配置文件的根元素,相当于MyBatis中各元素的管理员。configuration

16、元素包含很多子元素,它们必须按照上述结构中的JIl旃进行配置,否则MyBatiS在解析配置文件时会报错。1 .元素元素用于引入外部的ProPertieS文件,MyBaliS通过其获取文件中的配置信息。例如,现有一个properties文件database.properties,用于描述数据库连接的相关信息,具体内容如下。mysql.driver=com.mysql.cj.jdbc.Drivermysql.url=jdbc:mysql:/localhost:3306/db_myBatismysql.username=rootmysql.password=123456使用properties元素引

17、入database.properties文件,可以使用下面代码实现。2 .元素元素用于为实体类设置一个简化的别名,便于在映射文件中使用实体类.例如,Car类的全限定类名为com.mybatis.repository.Car,使用typeAliases元素设置该类的别名为Car,可以使用下面代码实现。如果有多个全限定类名需要设置别名,可以使用以下两种方法.(1)在VlyPeAliases元素中使用多个VIyPeAIias子元素为每个全限定类名逐个设置别名。例如:(2)通过自动扫描包的形式自定义别名。例如:上述代码中,MyBatis会自动扫描com.mybatis.repository包,并将该包

18、中所有实体类的类名或首字母4写的类名作为别名。例如,自动设置COm.mybalis.reposilory.Car的别名为Car或car。3 .environments元素VenVironmCnts元素用于配置多套运行环境,如开发环境、测试环境和生产环境等,可以将SQL映射到不同运行环境的数据库中.但不管配置几套运行环境,必须指定其中一套为当前默认的运行环境。VenVirOnmenls元素可以包含VenVirOnment子元素,每个VenvirOnment子元素用于配置MyBaiis的一套运行环境,指定运行环境的唯一标识、事务管理器和数据源等.environment元素又包含Ctransacti

19、onManager,和两个子元素,分别用于配置运行环境的事务管理器和数据源。对于事务管理器的配置,MyBaIiS提供了两种类型的事务管理器,分别为JDBC和MANAGED。(1)JDBC:MyBatiS依赖从数据源得到的连接来管理事务,即使用JDBC来提交或回滚事务。(2)MANAGED:MyBatis自身不会管理事务,而是让容器来管理事务。对于数据源的的配置,MyBatiS提供了3种类型的数据源,分别为UNPOOLED.POOLED和JNDIe(1)unpooled:表示数据源为无连接池类型,适用于对性能要求不高的简单应用程序。MyBatiS每次执行数据库操作时都会创建一个新连接,并在操作完

20、成后关闭该连接。(2)POOLED:表示雌源为连接池类型,一般在开发和测试时使用.MyBatis会创建T数据库连接池,每次执行数据库操作时从连接池中取出一个连接,操作完成后再将连接归还连接池。(3)JNDI:一般在实际应用中使用。MyBatis从配置好的JNDI数据源获取连接。使用VenVironmCnts元素配置运行环境,具体代码如下。!配置事务管理器!-配置数据源上述代码中,VenVirOnmenis元素的default属性用于指定默认的运行环境,取值为VCnvirOnmenl元素的id属性值;environment元素的id属性用于设置所配置环境的唯一标识,如development;元素

21、的type属性用于指定事务管理器的类型,如JDBC;元素的type属性用于指定数据源的类型,如POOLED;元素用于配置瑛源的相关信息,此处数据源的相关信息都是从database.properties文件中动态获取的。4.VmaPPe2元素元素用于引入MyBatis的映射文件,MyBalis通过其找到映射文件并解析文件中的映射信息。通过元素引入映射文件常用的方法有3种,下面以保存在com.mybatis.mapper包中的CarMappeExmI映射文件和CarM叩Per接口为例做详细介绍。(1)使用文件路径引入映射文件。例如:(2)使用接口类引入映射文件。例如:(3)使用包引入映射文件,此时

22、可以引入包中所有的映射文件。例如:【学生】聆听、思考、理解、记录课堂讨论【教师】对学生进行分组,46人一组,每组选出一名组长,然后组织学生以小组为单位讨论以下问题截至目前,同学们已经学习了使用MyBaIiS框架操作数据库、SPringJDBC操作数据库、传统JDBC操作数据库。请同学们讨论,这三者在操作数据库、数据库编程时的区别,三者的适用场景,以及各自的优缺点。【学生】聆听、思考、小组讨论,由小组代表上台发表讨论结果【教师】总结学生的回答,并评价各组的表现课堂小结【教师】简要总结本节课的要点本次课介绍了MyBatiS开源、轻量级的数据持久层框架及其主要特点。介绍了MyBatiSJAR包的下载地址,版本信息,以及下载完成之后的目录结构。讲解了MyBatis的工作流程,包含的8个详细步骤。最后介绍了MyBatis实现数据持久化,主要涉及的3个核心对象,分别是SqisessionFactoryBuilder对象、SqlSessionFactory对象和SqlSession对象,以及各个对象的创建方法,具体的代码实现。最后让学生们讨论了MyBaliS框架、SPringJDBC、传统JDBC操作数据库时各自的优势,加深同学们对三者的理螭口认识。【学生】总结回顾知识点作业布置【教师】布置课后作业请根据本课内容,完成课后习题中的相关习题。【学生】完成课后任务教学反思

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号