首页 > 其他 > 详细

MyBatis学习笔记01_MyBatis概述

时间:2020-02-16 23:46:41      阅读:101      评论:0      收藏:0      [点我收藏+]

MyBatis概述

MyBatis框架弥补了传统JDBC开发模式的不足,提供了强大的加载配置、SQL解析与执行、结果映射等机制,提高了项目开发的效率。

MyBatis可以将SQL语句配置在XML文件中,这避免了JDBC在 Java 类中添加SQL语句的硬编码问题,通过MyBatis提供的输入参数映射方式,将参数自由灵活地配置在SQL语句配置文件中。MyBatis的输出映射机制,讲结果集的检索自动映射成为相应的Java对象。

MyBatis的整体架构

MyBatis的整体架构由数据源配置文件、SQL映射配置文件、会话工厂、会话、执行器以及底层封装对象组成。

数据源配置文件

MyBatis对于数据库连接的配置信息,采用了“数据库连接池”的形式,让数据库的配置信息从外部的某种配置文件中读取。在MyBatis中,数据库的数据源配置一般是配置在mybatis-config.xml配置文件中,其中配置了数据库驱动、数据库连接地址、数据库的用户名和密码、数据库事务管理方式等参数。

mybatis-config.xml最基础的配置:

<?xml version="1.0" encoding="UTF-8"?>
<!--头部约束-->
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!--数据源配置-->
    <environments default="mysql">
        <!--数据库配置的具体信息-->
        <environment id="mysql">
            <!--配置事务管理类型-->
            <transactionManager type="JDBC"/>
            <!--配置连接池信息-->
            <dataSource type="POOLED">
                <!--配置数据库的驱动、连接地址、用户名和密码-->
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
                <property name="username" value="root"/>
                <property name="password" value="MARTIN0319"/>
            </dataSource>
        </environment>
    </environments>
</configuration>

SQL映射配置文件

在传统的JDBC开发模式中,SQL语句是硬编码在Java代码中的,而MyBatis框架将SQL语句配置在独立的配置文件中。对于SQL语句执行所需要的参数、查询返回的结果集对象,都可以在SQL映射配置文件中进行配置。

输入参数方面,MyBatis会根据配置文件中的参数设置,将组装参数的Java对象或Map对象中的相关字段与Mapper.xml中的参数配置做匹配,将相关数据绑定在需要执行的SQL语句上。在查询语句输出结果是,会根据Mapper.xml文件中的结果集配置信息,将从数据库取出的数据字段映射到Java对象或者Map对象中。

基本的mapper文件配置:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.martin.mapper.UserMapper">
    <select id="findAllUser" resultType="com.martin.domain.User">
        select * from user;
    </select>
    <select id="findUserById" resultType="com.martin.domain.User" parameterType="integer">
        select * from user where id = #{id}
    </select>
</mapper>

在上述的UserMapper.xml配置文件中,select标签标记了标签内部的SQL语句为查询语句。其中的parameterType指定了输入参数的类型,resultType制定了输出结果映射的Java对象。

Mapper.xml配置文件一般会在数据源配置文件mybatis-config.xml中的mappers的标签中。如:

<mappers>
    <mapper resource="com/martin/mapper/UserMapper.xml"/>
</mappers>

会话工厂和会话

MyBatis中的会话是指SqlSession对象,负责与数据库交互。会话工厂SqlSessionFactory则是用来产生SqlSession对的工厂类。SqlSessionFactory会根据信息资源加载对象,获取mybatis-config.xml中数据库连接池的配置信息,根据数据库的配置信息产生出可以连接数据库并与其交互的SqlSession会话对象。

MyBatis运行流程

MyBatis的整个运行流程,也是紧紧围绕着数据库连接池配置文件mybatis-config.xml,以及SQL映射配置文件Mapper.xml而开展的。

首先SqlSessionFactory会话工厂会通过Resources资源信息加载对象获取SqlMapConfig.xml配置文件信息,然后产生可以与数据库进行交互的会话实例类SqlSession。会话实例类SqISession可以根据Mapper配置文件中的SQL配置,去执行相应的增删改查操作。而在SqISession类内部,是通过执行器Executor(分为基本执行器和缓存执行器)对数据库进行操作的。执行器Executor与数据库交互,依靠的是底层封装对象MapperedStatement,它封装了从Mapper文件中读取的信息(包括SQL语句、输入参数、输出结果类型)。通过执行器Executor与底层封装对象MapperedStatement的结合,MyBatis就实现了与数据库进行交互的功能。
技术分享图片

MyBatis学习笔记01_MyBatis概述

原文:https://www.cnblogs.com/martin0319/p/12319033.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!