版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务1.1初识框架掌握框架的定义;当前主流的框架及各自的特性1本节任务框架是为复用和快速开发特定软件系统设计的软件架构;包含一系列类、接口、模块和组件,它们之间有明确的关系和协作方式,共同构成可扩展、可定制的体系结构;减少重复编码,还规范开发流程和方法,便于团队协作和项目维护;开发者可根据需求扩展和定制框架,添加特定功能和模块。1什么是框架?
当前主流的框架主要有Spring、SpringMVC、MyBatis、SpringBoot、SpringCloud、SpringData等。Spring框架:
IoC/DI:容器管理对象创建与依赖注入,通过注解(如@Autowired)降低耦合。
AOP:分离事务、日志等横切逻辑,用@Aspect定义切面,@Before/@After控制通知。
事务管理:支持声明式事务(@Transactional),统一管理事务生命周期。
优势:提升代码可维护性、测试性及扩展性,生态完善,适用于企业级应用。2主流的框架SpringMVC:MVC模式:分离控制器、模型与视图,控制器处理请求并调度视图。
注解驱动:通过@Controller、@RequestMapping等注解简化请求处理与数据绑定。
视图解析:支持JSP、Thymeleaf等多视图技术。
优势:简化Web开发,适合RESTfulAPI及复杂页面构建。MyBatis:ORM:映射数据库表与Java对象,支持XML或注解编写SQL。
参数/结果映射:数据库数据与对象属性双向绑定。
缓存机制:一级/二级缓存优化性能。
优势:精确控制SQL,灵活处理复杂查询,与Spring集成便捷。2主流的框架SpringBoot:
自动配置:基于依赖自动配置容器(如Tomcat)及组件(如SpringMVC)。
起步依赖:打包常用依赖(如spring-boot-starter-web),加速开发。
嵌入式服务器:内置服务器,无需独立部署。
微服务支持:与SpringCloud无缝集成,构建微服务架构。
优势:减少配置,提升开发效率,适合快速迭代与微服务场景。SpringCloud:
服务发现:Eureka实现服务注册与发现。
配置管理:Config集中管理微服务配置,支持动态更新。2主流的框架
负载均衡:Ribbon客户端分发请求。
熔断器:Hystrix防止服务雪崩。
网关:Zuul统一路由与安全控制。
优势:提供微服务治理全解决方案,解决分布式系统核心问题。SpringData:
统一抽象:支持关系型(JPA)与NoSQL(MongoDB)等多类型数据访问。
代码简化:通过接口与方法命名约定自动生成CRUD方法(如findById)。
自定义查询:使用@Query或方法名定义复杂查询。
优势:减少数据层代码,支持跨存储统一开发模式,提升效率。2主流的框架
我们重点掌握了:框架的定义:复用性、组件化、规范化、可扩展的软件架构,是开发的“脚手架”;主流框架的核心功能:Spring:IoC/DI、AOP、事务管理,企业级开发基石;SpringMVC:MVC模式、注解驱动,Web层开发工具;MyBatis:ORM映射、灵活SQL,持久层(数据库交互)框架;SpringBoot:自动配置、起步依赖,快速开发工具;SpringCloud:服务发现、配置管理、熔断,微服务治理框架;SpringData:统一数据访问、自动生成CRUD,多数据源操作框架。3章节小结感谢大家的聆听!任务1.2MyBatis入门程序理解什么是数据持久化?什么是ORM对象关系映射?MyBatis框架的核心特征?MyBatis环境搭建及MyBatis入门程序实现;MyBatis工作原理及应用场景。1本节任务
数据持久化是将应用数据保存到非易失性存储介质(如磁盘、数据库)的过程,确保数据在程序终止或系统故障后仍可恢复,因此内存数据易失性的特点决定了持久化的必要性。
ORM(对象关系映射)将数据库表与Java对象关联,允许通过对象操作数据库。其优势如下:
简化开发:抽象SQL操作,支持面向对象编程。
提高维护性:分离数据访问与业务逻辑。
数据库无关性:通过配置实现跨数据库兼容。
MyBatis框架核心特征:
灵活SQL控制:支持XML或注解编写SQL,适配复杂业务逻辑。
缓存机制:一级(会话级)与二级(全局)缓存优化性能。
动态SQL:通过<if>、<foreach>等标签实现条件化SQL生成。
与Spring集成:无缝结合Spring的依赖注入与事务管理。2知识支撑
步骤如下:
创建Maven项目:选择webapp模板,配置JDK17;
引入依赖:添加MyBatis(3.5.9)、MySQL驱动及连接池;
创建数据库:利用Navicat可视化界面;
配置核心文件(mybatis-config.xml):
定义数据源(数据库连接信息);
配置事务管理(JDBC模式);
指定Mapper映射文件路径;
具体操作见视频
实操1.1MyBatis环境搭建3MyBatis环境搭建
在MyBatsi环境搭建的基础上,通过模拟学生信息管理入门程序中的部分表来演示MyBatis框架的具体使用。【任务描述】使用Mybatis框架向学生表(student)插入一条学生记录(4,"赵六",19)。
步骤如下:
创建数据库表student;
创建实体类Student;
创建DAO层接口StudentDao;
创建DAO层接口实现类StudentDaoImp;
创建MyBatis映射文件StudentMapper.xml;
修改MyBatis核心配置文件;
测试验证。
具体操作见视频
实操1.2MyBatis入门程序
4MyBatis入门程序实现
MyBatis框架工作原理
5MyBatis框架工作原理及应用场景图1.2.1MyBatis工作流程图MyBatis操作数据库其工作流程主要从配置加载开始,历经多个关键步骤,最终完成对数据库的操作。工作流程图如图1.2.1所示。核心流程如下:配置加载:读取mybatis-config.xml和Mapper.xml;会话创建:通过SqlSessionFactory构建SqlSession,并作为执行SQL的核心对象;执行器处理:Executor封装SQL语句(通过MappedStatement绑定参数),执行数据库操作;结果映射:将查询结果按Mapper.xml规则映射为Java对象。
核心应用场景
5MyBatis框架工作原理及应用场景
传统企业级应用:支持复杂SQL(多表关联、条件筛选),适配多数据库(Oracle/MySQL);
数据迁移整合:灵活处理ETL流程,动态SQL满足多样化数据转换需求;
小型项目开发:配置简单、学习成本低,直接编写SQL提升开发效率;
高性能系统:精准优化SQL,结合缓存机制减少数据库访问,提升响应速度。
我们重点掌握了:三个核心概念:数据持久化(保存数据到非易失介质)、ORM(对象-表映射)、MyBatis核心特征(灵活SQL、缓存、动态SQL、Spring集成);两个实操流程:MyBatis环境搭建(Maven项目+依赖+核心配置)、入门程序实现(插入学生记录,从表创建到测试验证);一个工作原理:配置加载→会话创建→执行器处理→结果映射的完整流程;四类应用场景:传统企业应用、数据迁移、小型项目、高性能系统。3章节小结感谢大家的观看与聆听!任务1.3MyBatis核心对象了解MyBatis的三大核心对象核心对象的实例化方法三大核心对象之间的关系1本节任务
三大核心对象:SQLSessionFactoryBuilder、SqlSessionFactory和SqlSession。
1.SqlSessionFactoryBuilder
SqlSessionFactory是创建SqlSession的工厂,而SqlSessionFactory的创建则依赖于SqlSessionFactoryBuilder。
SqlSessionFactoryBuilder是MyBatis中用于构建SqlSessionFactory的构建器。图1.3.1为SqlSessionFactoryBuilder类的build()重载方法。
2知识支撑图1.3.1SqlSessionFactoryBuilder类的build()重载方法以字节流的方式传入1build(InputStreaminputStream,Stringenvironment,Propertiesproperties)以字符流的方式传入1build(Readerreader,Stringenvironment,Propertiesproperties)以配置类(Configuration)的方式传入1build(Configurationconfig)
此处以字节流的方式为例,其核心代码如下:2知识支撑1//读取mybatis-config.xml核心配置文件2InputStreaminputStream=Resources.getResourceAsStream("核心配置文件的位置信息");3//构造SqlSessionFactory工厂实例4SqlSessionFactorysqlSessionFactory=newSqlSessionFactoryBuilder().build(inputStream);由于SqlSessionFactory是线程安全的,因此一经创建,其在整个应用程序执行期间都会存在。如果多次创建同一个数据库的SqlSessionFactory,那么将造成资源浪费和性能下降。因此,通常一个数据库只创建一个SqlSessionFactory,并采用单例模式对其进行管理。
2.SqlSessionFactory
SqlSessionFactory是MyBatis框架中的一个核心接口,主要用于创建SqlSession。SqlSessionFactory
在被SqlSessionFactoryBuilder构造完成后,就可以通过调用openSession()重载方法来创建SqlSession,且不同的openSession()重载方法创建的SqlSession具有不同的特性。表1.3.1所示为不同openSession()重载方法的比较。
2知识支撑方法名称描述SqlSessionopenSession()用于开启一个事务SqlSessionopenSession(BooleanautoCommit)参数autoCommit可设置是否开启事务。若传传入参数数为true,则表示关闭事务控制,自动提交;若传传入参数数为false,则表示开启事务控制SqlSessionopenSession(Connectionconnection)参数connection可提供自定义连接SqlSessionopenSession(TransactionIsolationLevellevel)参数level可设置隔离级别SqlSessionopenSession(ExecutorTypeexecType)参数execType为执行器类型,有以下3个可选值。ExecutorType.SIMPLE:表示为每条语句创建一条新的预处理语句;ExecutorType.REUSE:表示会复用预处理语句;ExecutorType.BATCH:表示会批量执行所有更新语句SqlSessionopenSession(ExecutorTypeexecType,BooleanautoCommit)参数execType为执行器的类型,参数autoCommit为设置是否开启事务SqlSessionopenSession(ExecutorTypeexecType,Connectionconnection)参数execType为执行器的类型,参数connection可提供自定义连接表1.3.1不同openSession()重载方法的比较
3.SqlSession
SqlSession是MyBatis框架中一个非常重要的类。每个SqlSession实例都包含执行SQL语句所需的所有信息,可以通过执行映射文件中定义的SQL语句,完成对数据库的增删改查操作。表1.3.2所示为SqlSession的常用方法。
2知识支撑方法名称描述<T>TselectOne(Stringstatement)查询方法,参数statement是在配置文件中定义的<select>元素的id,查询结果为一个泛型对象<T>TselectOne(Stringstatement,Objectparameter)查询方法,parameter是查询语句所需的参数,查询结果为一个泛型对象<E>List<E>selectList(Stringstatement)查询方法,参数statement是在配置文件中定义的<select>元素的id,查询结果为泛型对象的集合<E>List<E>selectList(Stringstatement,Objectparameter)查询方法,parameter是查询语句所需的参数,查询结果为泛型对象的集合<E>List<E>selectList(Stringstatement,Objectparameter,RowBoundsrowBounds)查询方法,rowBounds是用于分页的参数对象,查询结果为泛型对象的集合voidselect(Stringstatement,Objectparameter,ResultHandlerhandler)查询方法,handler用于处理查询语句返回的复杂结果集,该方法常用于多表查询intinsert(Stringstatement)插入方法,参数statement是在配置文件中定义的<insert>元素的id表1.3.2SqlSession的常用方法方法名称描述intinsert(Stringstatement,Objectparameter)插入方法,parameter是插入语句所需的参数intupdate(Stringstatement)更新方法,参数statement是在配置文件中定义的<update>元素的idintupdate(Stringstatement,Objectparameter)更新方法,parameter是更新语句所需的参数intdelete(Stringstatement)删除方法,参数statement是在配置文件中定义的<delete>元素的idintdelete(Stringstatement,Objectparameter)删除方法,parameter是删除语句所需的参数voidcommit()提交事务的方法voidrollback()回滚事务的方法voidclose()关闭SqlSession<T>TgetMapper(Class<T>type)该方法会返回Mapper接口的代理对象,参数type是Mapper的接口类型ConnectiongetConnection()获取JDBC数据库连接对象的方法
SqlSession不是线程安全的,因此不能在多个线程之间共享同一个SqlSession实例。通常情况下,一个SqlSession实例对应一次数据库会话,在完成数据库操作后,应及时关闭SqlSession,以释放资源,关闭SqlSession的操作通常被放在finally代码块中。
2知识支撑
创建SqlSession的常用代码如下。1 SqlSessionsqlSession=SqlSessionFactory.openSession();2 try{3 …//此处执行持久化操作4 sqlSmit();//提交事务5 }catch(IOExceptione){6 …//此处为捕获异常后操作7 }finally{8 sqlSession.close();//关闭SqlSession,释放资源9 }
三大核心对象之间的关系
三者按固定顺序协作,流程不可逆,具体步骤如下:
用SqlSessionFactoryBuilder读取配置文件,调用build()方法生成SqlSessionFactory;
用SqlSessionFactory调用openSession()方法,创建SqlSession(可指定是否自动提交事务);
用SqlSession执行SQL(直接调用API或获取Mapper接口),完成数据CRUD;
操作结束后,调用SqlSession的commit()/rollback()处理事务,再调用close()关闭会话。2知识支撑
我们重点掌握了:三大核心对象的定位:SqlSessionFactoryBuilder是“临时构建器”,SqlSessionFactory是“线程安全的工厂”,SqlSession是“非线程安全的执行者”;实例化方法:SqlSessionFactoryBuilder通过build()读配置生成SqlSessionFactory,SqlSessionFactory通过openSession()生成SqlSession,SqlSession通过API或Mapper执行SQL;协作关系:按“构建工厂→创建会话→执行SQL→关闭会话”的固定流程协作,形成完整的数据库操作链路。3章节小结感谢大家的观看与聆听!任务1.4MyBatis核心配置文件了解MyBatis核心配置文件的结构结构中主要元素的使用方法掌握配置文件模板的制作流程1本节任务
MyBatis核心配置文件(通常被命名为mybatis-config.xml)是MyBatis框架的重要组成部分,用于配置MyBatis的各种全局设置和环境信息,为数据库操作提供必要的基础配置。该文件的根元素是<configuration>,该元素下包含多个子元素,每个子元素都有特定的配置功能。其整体元素结构如图1.4.1所示。
2知识支撑图1.4.1MyBatis核心配置文件的元素结构
MyBatis核心配置文件中的主要元素介绍。1.<properties>元素<properties>元素用于引入外部属性文件,以便管理数据库连接信息等配置。
假设当前在resources目录下有一个属性文件perties,该文件定义了数据库驱动、URL、用户名和密码等信息。使用<properties>元素可以在核心配置文件mybatis-config.xml中引用该属性文件,示例代码如下。2知识支撑1<propertiesresource="perties"/>
2.<settings>元素<settings>元素用于配置MyBatis的各种全局设置,如是否开启缓存、是否开启自动驼峰命名映射等。设置在控制台打印SQL相关信息的示例代码如右所示。1<settings>2<settingname="logImpl"value="STDOUT_LOGGING"/>3</settings>
3.<typeAliases>元素
<typeAliases>元素用于定义类型别名,以便在配置文件中使用别名代替全限定类名,进而简化配置。既可以为单个类定义别名,也可以通过指定包名来批量定义别名。示例代码如下。2知识支撑1<typeAliases>2<!--为单个类定义别名-->3<typeAliasalias="Student"type="com.bigdata.pojo.Student"/>4<!--批量定义别名,会为该包下的所有类自动生成别名,别名默认为类名-->5 <packagename="com.bigdata.pojo"/>6</typeAliases>
4.<enviroments>元素<environments>元素用于配置多个数据库环境,每个环境可以有不同的事务管理和数据源配置,通过default属性可指定默认使用的环境。示例代码如下。2知识支撑1<environmentsdefault="development">2 <environmentid="development">3 <transactionManagertype="JDBC"/>4 <!--引用数据库连接配置信息,即perties文件的内容-->5 <dataSourcetype="POOLED">6 <propertyname="driver"value="${mysql.driver}"/>7 <propertyname="url"value="${mysql.url}"/>8 <propertyname="username"value="${mysql.username}"/>9 <propertyname="password"value="${mysql.password}"/>10 </dataSource>11 </environment>12</environments>
5.<mappers>元素<mappers>元素用于注册映射器,告诉MyBatis去哪里查找SQL映射文件或映射器接口。可以通过多种方式注册映射器。示例代码如下。2知识支撑1<mappers>2 <!—使用类路径注册映射文件-->3 <mapperresource="mappers/StudentMapper.xml"/>4 <!—使用接口类引入-->5 <mapperclass="com.bigdata.mapper.StudentMapper"/>6 <!--批量注册指定包下的所有映射器接口-->7 <packagename="com.bigdata.mapper"/>8</mappers>2知识支撑1<?xmlversion="1.0"encoding="UTF-8"?>2<!DOCTYPEconfiguration3PUBLIC"-////DTDConfig3.0//EN"4"mybatis官网/dtd/mybatis-3-config.dtd">5<configuration>6<!--配置属性-->7<propertiesresource="perties"/>8<!--配置类型别名-->
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年湖北公开遴选公务员考试(综合文秘类)模拟试题及答案
- 2026年河南公开选聘事业单位工作人员考试(交通行政执法知识)测试题及答案
- 2026年儿科常见疾病试题及答案
- 2026江西军转干统一考试(法律基础)综合能力测试题及答案
- 上海美国商会洞察杂志(2026春季刊)
- 2025年天津天津物业管理师职业技能鉴定考试(技能实操技师、高级技师)在线自测试题库
- 2025年江西军队转业干部考试(国税)测试题及答案
- 2026年英语教师招考测试题及答案
- 2026年化工原理吸收测试题及答案
- 2026年高中口语测试题及答案
- 2025年春季四川省广元市义务教育阶段学生学业水平监测八年级下学期期末语文试卷(含答案)
- 主动脉瘤的护理查房
- GB/T 18501.8101-2025电子和电气设备用连接器产品要求第8-101部分:电源连接器2芯、3芯40 A功率加2芯信号塑料外壳屏蔽密封连接器详细规范
- 塔里木大学《大学写作一》2023-2024学年第二学期期末试卷
- 中国近现代史纲要-第七章
- MOOC 商务智能-西南财经大学 中国大学慕课答案
- 临床检验危急值培训课件
- (含多场合)离婚协议书打印模板
- 北京版八年级数学下册全册课件【完整版】
- 小鸟科技拼接处理器产品
- 常微分方程一阶微分方程的初等解法公开课一等奖市赛课获奖课件
评论
0/150
提交评论