大数据学习
第13节
前期准备
集合,IO,多线程,
第14节
第1节MyBatis–1
1.定义
MyBatis是一个一流的持久性框架,支持定制SQL、存储过程和高级映射。MyBatis消除了几乎所有的JDBC代码以及参数的手动设置和结果检索。MyBatis可以使用简单的XML或注释进行配置,并将原语、映射接口和Java pojo (Plain Old Java Objects)映射到数据库记录。
(1)存储过程
意味着数据库里存储了可执行程序,如果只是和数据打交道是可以的,但如果是为了满足某种业务逻辑,按照某种功能即上面的应用程序该做的事情则把它放入数据库中。
(2)映射
由上层应用的对象到数据库的对应关系
二.相关过程
1.XML的配置
想用MyBatis去做持久化,去操作数据库,首先需要创建一个sqlsession,也就是和数据库建立一个会话,基于这个链接做sql语句的传输或数据的操作,这个过程称为会话。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q7ZMN5hV-1633352539134)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210821132929955.png)]
设计模式里的工厂模式
SqlSessionFactory
2.工厂模式
(1)数据库是系统级软件,对于用户自己写的聊天程序,是不应该保存至数据库里的
(2)对于存储这件事不同的场景会存在在不同的介质当中,可能是文件系统,可能是数据库系统
a 那用户开发出来的系统有一部分存到文件里,一部分存到数据库里,那这两种对象,本来是分成两个类的,如果在代码里直接用某个类型的new出来的话,则对它会产生绝对性的依赖。
b 如果在相同的这段代码想使用数据库的话,那只能修改源代码,这是不行的。因为JAVA里有多态,声明的是接口,具体创建的是可配置式的,在配置文件里写一个标签(此部分程序存入文件系统,此部分程序存入数据库系统),所以创建具体的会话这件事应该要由工厂来完成,而不是直接用new来完成,工厂模式由此而来。
(3)我们想去和数据库建立通信链路之前,要建立sqlsession,想拿到session需要先有factory
3.使用流程
(1)每个MyBatis应用程序都以一个SqISessionFactory实例为中心。SqISessionFactory实例可以通过使用sqlessionfactorybuilder获得。SqISessionFactoryBuilder可以从XML配置文件或configuration类的自定义准备实例构建一个SqlSessionFactory实例。从XML文件构建sqlessionfactory实例非常简单。建议您为这个配置使用类路径资源,但是您可以使用任何InputStream实例,包括从文字文件路径或文件:// URL创建的实例。mvatis包括一个实用程序类,称为Resources。它包含许多方法,使从类路径和其他位置加载资源变得更简单。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bBXzuhvV-1633352539137)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210822083256458.png)]
(2)使用MaBatis时,先要通过SqlSessionFactoryBuilder来读取配置文件mybatis-config.xml,来创建一个sqlSessionFactory,有了sqlSessionFactory后才可以使用sqlSession
三.项目实战
1.创建Maven projectproject
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KS1sj4ro-1633352539139)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210822111246929.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A5GThABg-1633352539142)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210822111316833.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MBTS7xWa-1633352539143)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210822111329753.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9XYoMLVy-1633352539144)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210822111448942.png)]
创建完毕
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QpwncTJT-1633352539145)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210822111918298.png)]
2.关于创建项目时加载缓慢的原因
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2si4Wn36-1633352539146)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210822112220297.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SEtFJpdY-1633352539147)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210822112846773.png)]
以下 因为下载的jar包是从国外的镜像网站下载,所以会慢
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QPqkEmBp-1633352539148)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210822113111109.png)]
2.准备工作
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ay3JH5UF-1633352539149)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210822141110458.png)]
1.手动添加方法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nMMF6Lqv-1633352539150)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210822141632800.png)]
mybatis的数据就叫mapper,就不叫dao了
创建mybatis-config.xml文件
复制以下代码
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LVzJ24J6-1633352539151)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20210823115016921.png)]
]
mybatis的数据就叫mapper,就不叫dao了
创建mybatis-config.xml文件
复制以下代码
[外链图片转存中…(img-LVzJ24J6-1633352539151)]