ORM框架之MyBatis
MyBatis框架
1、由什么构成?
Mapper配置,注解/XML。不推荐使用注解,因为修改sql后java文件需要重新编译
Mapper接口,Dao层接口,(只需要写接口,不需要写实现类:需要遵守约定)
接口书写要遵循约定:方法名和配置文件的id值相同
参数类型必须相同parameterType
返回值类型相同resultType
…
2、MyBatis开发时常用对象:
SqlSessionFactory:SqlSession工厂,调用他的openSqlSession()产生SqlSession
SqlSession:类似JDBC的Connection连接对象
Executor:MyBatis的Mapper语句都是通过他来执行
3、MyBatis四大核心对象:
StatementHandler:(负责sql语句)数据库处理对象
PrameterHandler:处理sql中的参数
Executor:同上,Mapper的执行器
ResultSetHandler:处理sql的返回结果集
4、MyBatis四大处理器:
StatementHandler(SQL)—>PrameterHandler(SQL参数)–>ResultSetHandler(返回结果集)
TypeHandler(类型转换器)。例parameterType、resultType中可能会使用
5、MyBatis执行流程:
加载配置文件(核心配置文件、映射文件)---->创建会话工厂(SqlSessionFactory)----->创建会话(SqlSession)---->创建执行器(Executor)---->封装SQL对象(MappedStatement 入参、返回结果)---->DB
6、MyBatis如何处理一对一、一对多、延迟加载的?
一对一、延迟加载
<resultMap id="userResultMap" type="com.sms.pojo.User">
<id property="userId" column="user_id"/>
<result property="loginName" column="login_name"/>
<result property="password" column="password"/>
<association property="emp" select="select * from emp"
column="emp_id"/>
</resultMap>
一对多
<resultMap id="userResultMap" type="com.sms.pojo.User">
<id property="userId" column="user_id"/>
<result property="loginName" column="login_name"/>
<result property="password" column="password"/>
<collection property="" property="emp" select="select * from emp" column="emp_id"/>
</resultMap>
本文地址:https://blog.csdn.net/qq_44836626/article/details/107295472
上一篇: MySQL 索引深入剖析