《《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对象常用的方法,并说明其使用方法及其作用。【学生】聆听、思考、回答【教师】总结学生的回答每次访问数据库时都需要创建SqISeSSiOn对象每个SqISeSSiOn对应一次数据库会话。因此SqISeSsion对象的最佳作用域是一次会话请求或一个方法。(二)MyBatis的核心配置文件MyBalis的核心配置文件主要用于配置属性文件、运行环境和MyBatis的全局信息等,其结构如下。v!-类命名”typeHandle