Mybatis知识点总结

Mybatis知识点总结

1、mybatis组件

1、SqlSessionFactoryBuilder:构造器 (建造者模式)

​ SqlSessionFactoryBuilder是利用XML或者Java编码获得资源来构建SqlSessionFactory。通过它可以构建过个SqlSessionFactory。它的作用就是一个构建器,一旦我们构建了SqlSessionFactory,它的作用也就消失了.

2、SqlSessionFactory:工厂接口,由Builder生成

​ 1、基础文件配置

​ typeAlias:定义元素别名,代表com.learn.ssm.chapter3.pojo.Role类可以使用自定义别名

​ environment:配置使用数据库的链接信息

​ dataSource:设置mubatis内部提供连接池的方式

​ mapper:引入自定的映射器配置文件

​ 2、映射文件配置,配置结合业务所实现的SQL语句关系

3、SqlSession:会话,发送sql,返回结果

​ 1、核心接口,等同于JDBC里面的Connection链接对象,

img

​ 1、获取Mapper接口

​ 2、发送SQL个数据库

​ 3、控制数据库事务

​ 2、DefaultSqlSession

​ 单线程使用

​ 3、SqlSessionManager

​ 多线程使用

4、SQL Mapper:映射器,由java和xml文件构成,构造映射规则,发送SQL,执行完后返回结果

5、生命周期

​ 1、 SqlSessionFactoryBuilder用于创建SqlSessionFactory,创建成功后即失效

​ 2、SqlSessionFactory等同于多个数据库的连接池(整个mysql),在整个mybatis的生命周期中,如果创建多个,则会耗光连接池,造成应用崩溃,所以一般为单例模式,整个应用进行共享

​ 3、SqlSession对应单个数据库进行的命令操作,如果使用完,则会把链接返还给SqlSessionFactory连接池

​ 4、Mapper由session创建,一个mapper请求对应一个业务处理

2、mybatis核心对象

(1)SqlSession :作为MyBatis工作的主要顶层API,表示和数据库交互的会话,完成必要数据库增删改查功能
(2)Executor : MyBatis执行器,是MyBatis 调度的核心,负责SQL语句的生成和查询缓存的维护
(3)StatementHandler : 封装了JDBC Statement操作,负责对JDBC statement 的操作,如设置参数、将Statement结果集转换成List集合。
(4)ParameterHandler : 负责对用户传递的参数转换成JDBC Statement 所需要的参数,
(5)ResultSetHandler : 负责将JDBC返回的ResultSet结果集对象转换成List类型的集合;
(6)TypeHandler : 负责java数据类型和jdbc数据类型之间的映射和转换
(7)MappedStatement : MappedStatement维护了一条<select|update|delete|insert>节点的封装,
(8)SqlSource : 负责根据用户传递的parameterObject,动态地生成SQL语句,将信息封装到BoundSql对象中,并返回
(9)BoundSql: 表示动态生成的SQL语句以及相应的参数信息
(10)Configuration : MyBatis所有的配置信息都维持在Configuration对象之中。

img

3、mybatis配置

1、配置文件

​ (1)配置文件结点顺序不能颠倒

​ (2)配置文件xml

​ configuration : 根结点

​ properties : 属性

​ settings : 设置

​ typeAliases:类型命名

​ typeHandlers : 类型处理器

​ objectFactory : 对象工厂

​ plugins:插件

​ environments: 配置环境

​ environments : 环境变量

​ transactionManager : 事物管理器

​ dataSource : 数据源

​ databaseIdProvider : 数据库厂商标识

​ mappers : 对象映射器

​ (3)简单配置实例

<?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>   
   <!-- 配置mybatis运行环境 -->
     <environments default="development">
        <environment id="development">
            <!-- type="JDBC" 代表使用JDBC的提交和回滚来管理事务 -->
            <transactionManager type="JDBC" />
            
            <!-- mybatis提供了3种数据源类型,分别是:POOLED,UNPOOLED,JNDI -->
            <!-- POOLED 表示支持JDBC数据源连接池 -->
            <!-- UNPOOLED 表示不支持数据源连接池 -->
            <!-- JNDI 表示支持外部数据源连接池 -->
            <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="123456" />
            </dataSource>
        </environment>
    </environments> 
    <mappers>
    	<!-- 告知映射文件方式1,一个一个的配置
        <mapper resource="com/xhh/mybatis/mapper/UserMapper.xml"/>-->
        <!-- 告知映射文件方式2,自动扫描包内的Mapper接口与配置文件
        <package name="com/xhh/mybatis/mapper"/> -->
        
        <mapper resource="UserMapper.xml"/>
    </mappers>
    
</configuration>

2、xml结点详细介绍(百度)

4、mybatis映射器

1、一个映射的xml对应一个接口类型,然后对应对象

2、select

​ 1、默认sql返回的列名需要和对象属性一一对应上。

​ 2、xml 结点属性配置

​ (1) id : 方法名称,供Mybatis 使用,如果相同的命名空间id不唯一,则会报错

​ (2) parameterType : 传递参数类型,可以是int,string,或者类类型。

​ (3) resultType : 返回结果类型,可以是int,string,或者类

​ (4) resultMap : 返回结果自定义使用,比如说使用typeHandler

​ (5) flushCac

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值