因为要考试了,把这些概念问题都梳理一下。
首先,我们学习框架要知道,框架是什么东西。
框架:是一个应用程序的一部分实现。例如:Spring,spring boot等等。
框架的优势:提高开发效率,提高代码规范性和可维护性,提高软件性能。
模式:解决一类问题的方法论。例如,单例模式,原型模式,迭代器模式,观察模式等。
架构:软件体系结构,一种设计方案。比如说,大家熟知的三层架构:MVC。
一.Mybatis
Mybatis:是一个半自动ROM框架,支持SQL查询,存储,高级映射的持久层框架,可以在实体类和SQL语句之间建立映射关系,对操作数据库的过程进行了封装,消除了原先使用JDBC的冗余。
JDBC:Java Database Connection 数据库连接,提供了一套数据库操作API包括加载驱动,获取连接,获取执行者对象,发送SQL语句。
ORM:Object Relational Mapping 对象关系映射。
ORM的映射是什么映射:对象与关系的映射,对操作的映射,对关联的映射。
mybatis的工作原理:mybatis-config.xml----------Mapping.xml-----------创建会话工厂-------------创建会话对象--------------创建执行器---------封装映射对象-----------操作数据库-----------输出结果映射
二.mybatis-config.xml
Mybatis的三个核心对象:SqlSessionFactoryBuilder,SqlSessionFactory,SqlSession
SqlSessionFactoryBuilder通过build()构造SqlSessionFactory
SqlSessionFactory使用openSession()创建SqlSession对象
SqlSession对象:在应用程序与持久层之间执行交互操作,主要作用是执行持久化操作,包含了执行SQL操作的方法。
UNPLOOLED无连接池类型需要用户负责关闭
<mapper>标签用来引入mapper文件,主要有四种方式,类路径引入,本地文件引入,接口类引入,包名引入。
三.mapper.xml映射文件
mapper文件中的常用标签:<mapper><cache><cache-ref><select><update><insert><delete><sql><resultMap>
标签中的属性:
parameterType:参数类型 resultType:返回类型
动态SQL<if>判断<choose><when><otherwise>例如(switch....catch.....default)<where>条件<trim>去除多余关键字<set>更新<foreach>循环
<if>test属性中的值为判断值
<foreach>属性
tem:集合中迭代元素的别名
separator:分隔符
index:元素的序号
collection:类型必须指定,迭代类型值为list array map
open开头符号 close结尾符号
查询
嵌套查询(子查询)通过执行另外一条SQL映射语句来返回预期的复杂类型
嵌套结果查询(多表查询)使用嵌套结果来处理重复的联合结果的子集
多对多关联映射Collection property ofType
常用注解:@Select @Insert @Update @Delete @Param(指定参数)
@One一对一查询 @Many一对多查询
@Result映射查询结果可以嵌套,有三个属性property(关联的实体类属性),one(指定关联关系),column(关联数据库表中字段名)