zoukankan      html  css  js  c++  java
  • MyBatis学习3-构建SqlSessionFactory

    每个MyBatis应用以SqlSessionFactory的实例为中心的,SqlSessionFactory的实例可以通过SqlSessionFactoryFactory获得。

    SqlSessionFactory是一个工厂接口而不是实现类,它的任务是创建SqlSession

    SqlSession类似一个JDBC的Connection对象

    SqlSession提供两种模式去创建SqlSessionFactory

      1XML配置方式(推荐,避免 hard code)

      2 代码方式

    Configuration类对象存在于整个MyBatis生命周期,以便重复读取和运用

    MyBatis中提供两个SqlSessionFactory实现类

      1 DefaultSqlSessionFactory(目前使用)

      2 SqlSessionManager(目前未使用)

     

      1 使用xml方式构建

      一般包含DataSource、TransactionManager、SQL Mapper

      配置映射器,引入XML 用来提供SQL和SQL对POJP的映射规则定义,它包含了映射器里面的信息

      解析程序会将mybatis-config.xml文件配置的信息解析到Configuration类对象里,然后利用SqlSessionFactoryBuilder读取这个对象为我们创建SqlSessionFactory

      2使用代码方式构建

      

    创建SqlSession

    SqlSession是一个接口类,句有门面的作用,起作用的是Executor接口

    SqlSession接口类似一个JDBC中Connection接口对象

    SqlSession用途主要有两种

      1 获取映射器,让映射器通过命名空间和方法名称找到对应的SQL,发给数据库执行和返回结果

      2 直接通过命名信息去执行SQL返回结果

    映射器

    映射器由java接口和XML文件或注解共同组成

      1定义参数类型

      2描述缓存

      3描述SQL语句

      4定义查询结果和POJO的映射关系

    映射器实现方式有两种,xml、通过代码实现

    建议使用XML文件实现

      1Java注解是受限的,功能较少,Mapper更加灵活强大

      2动态SQL写在Java文件中可读性较差

      3通过注解也可以完成SQL定义,但是可读性不佳

    Mapper的实现由Java接口和一个XML文件构成

      Mapper.xml在mybatis-config.xml中配置过,所以MyBatis读取这个配置文件,生成映射器

      定义一个命名空间为com.xx.mapper.xxMapper的SQLMapper,这个命名空间和定义的接口名称一致

      

    Java注解方式实现Mapper

    如在Mapper interface方法中假如@Select注解(不适合复杂sql)

  • 相关阅读:
    2020年终将过去
    Opus从入门到精通(一):简介
    0907 RTCP FB
    ClickHouse源码笔记6:探究列式存储系统的排序
    C++雾中风景17:模板的非推断语境与std::type_identity
    ClickHouse源码笔记5:聚合函数的源码再梳理
    ClickHouse源码笔记4:FilterBlockInputStream, 探寻where,having的实现
    ClickHouse源码笔记3:函数调用的向量化实现
    Doris开发手记1:解决蛋疼的MySQL 8.0连接问题
    声音克隆_论文翻译:2019_Transfer Learning from Speaker Verification to Multispeaker Text-To-Speech Synthesis
  • 原文地址:https://www.cnblogs.com/alloevil/p/10974659.html
Copyright © 2011-2022 走看看