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>

你可能感兴趣的:(mybatis,java)