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)

  • 相关阅读:
    命令用法示例
    Elastic:用Docker部署Elastic栈
    Elastic:使用Heartbeat进行Uptime监控
    Elastic:如何在一个机器上同时模拟多个node
    Elastic 使用索引生命周期管理实现热温冷架构
    Logstash:运用jdbc_streaming来丰富我们的数据
    Logstash:多个配置文件(conf)
    Logstash:处理多个input
    使用 Logstash 和 JDBC 确保 Elasticsearch 与关系型数据库保持同步
    Logstash:把MySQL数据导入到Elasticsearch中
  • 原文地址:https://www.cnblogs.com/alloevil/p/10974659.html
Copyright © 2011-2022 走看看