1、mybatis的初始化

MyBatis的初始化包括基于XML配置文件和Java API两种方式。XML配置方式中,通过SqlSessionFactoryBuilder加载配置文件,创建XMLConfigBuilder解析成Configuration对象,再构建DefaultSqlSessionFactory。Java API则需要手动创建并设置Configuration对象。初始化过程涉及configuration、properties、settings、typeAliases、typeHandlers、objectFactory、plugins、environments等核心组件。

MyBatis的初始化做了什么

  • configuration 配置
    • properties 属性
    • settings 设置
    • typeAliases 类型命名
    • typeHandlers 类型处理器
    • objectFactory 对象工厂
    • plugins 插件
    • environments 环境
      • environment 环境变量
      • transactionManager 事务管理器
      • dataSource 数据源
  • 映射器

使用 org.apache.ibatis.session.Configuration 对象作为一个所有配置信息的容器,Configuration对象的组织结构和XML配置文件的组织结构几乎完全一样

可以这么说,MyBatis初始化的过程,就是创建 Configuration对象的过程。

MyBatis的初始化可以有两种方式:
1. 基于XML配置文件:基于XML配置文件的方式是将MyBatis的所有配置信息放在XML文件中,MyBatis通过加载并XML配置文件,将配置文信息组装成内部的Configuration对象
2.基于Java API:这种方式不使用XML配置文件,需要MyBatis使用者在Java代码中,手动创建Configuration对象,然后将配置参数set 进入Configuration对象中

MyBatis基于XML配置文件创建Configuration对象的过程

package com.lf;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;

public class App {
    public static void main(String[] args) throws IOException {
        String resouce = "mybatis-config.xml";
        InputStream is = Resources.getResourceAsStream(resouce);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
        System.out.println(sqlSessionFactory.getConfiguration());
    }
}

mybatis初始化要经过简单的以下几步:
1. 调用SqlSessionFactoryBuilder对象的build(inputStream)方法;
2. SqlSessionFactoryBuilder会根据输入流inputStream等信息创建XMLConfigBuilder对象;
3. SqlSessionFactoryBuilder调用XMLConfigBuilder对象的parse()方法;
4. XMLConfigBuilder对象返回Configuration对象;
5. SqlSessionFactoryBuilder根据Configuration对象创建一个DefaultSessionFactory对象;
6. SqlSessionFactoryBuilder返回 DefaultSessionFactory对象给Client,供Client使用。

基于Java API

package com.lf;

import org.apache.ibatis.session.Configuration;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.defaults.DefaultSqlSessionFactory;

import java.io.IOException;

public class App {
    public static void main(String[] args) throws IOException {

        Configuration configuration = new Configuration();
        configuration.setAggressiveLazyLoading(true);
        SqlSessionFactory sqlSessionFactory1 = new DefaultSqlSessionFactory(configuration);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值