欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ORM框架之MyBatis

程序员文章站 2022-04-13 08:58:40
MyBatis框架1、由什么构成?​ Mapper配置,注解/XML。不推荐使用注解,因为修改sql后java文件需要重新编译​ Mapper接口,Dao层接口,(只需要写接口,不需要写实现类:需要遵守约定)​ 接口书写要遵循约定:方法名和配置文件的id值相同​ 参数类型必须相同parameterType​ 返回值类型相同resultType...

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