美文网首页
Mybatis 初识

Mybatis 初识

作者: 云师兄 | 来源:发表于2018-11-07 13:39 被阅读11次

    Mybatis组件

    • SqlSessionFactoryBuilder: 工厂构造器
    • SqlSessionFactory: 工厂接口,由此生成SqlSession
    • SqlSession: 一个发送sql去执行,也可以获取Mapper的接口
    • Sql Mapper:由接口和xml文件(或是java注解)组成的组件,给出sql和映射关系。


      组件关系

    构建SqlSessionFactory

    SqlSessionFactory是一个工厂接口,用于创建SqlSession,SqlSession类似于JDBC中的Connection对象。Mybatis提供两个这个接口的实现类:DefaultSqlSessionFactory和SqlSessionManager,一般使用前者。

    Mybatis的配置类为Configuration,在Mybatis整个生命周期中存在,其内部保存了从XML文件中解析的配置信息,下面就接着看下如何使用XML形式来进行配置。

    使用XML构建

    XML配置文件中,主要对数据源DataSource,事务管理器TransactionManager和映射器SQL Mapper三个方面的配置。
    下面是个具体的XML配置文件的例子:


    配置文件

    有了配置文件后,就可以由此创建SqlSessionFactory了:


    创建工厂和SqlSession

    创建了SqlSessionFactory后就可以接着创建SqlSession对象了。要注意的是用完后记得关闭SqlSession,否则容易耗尽数据库资源,让连接资源还给数据库连接池,和JDBC的Connection原理类似。


    SqlSession的使用

    映射器Mapper

    一个Mapper通常由一个Java接口和XML文件组成。
    下面是个具体的例子:

    • 首先定义一个mapper的接口类,外部将基于它进行查询。


      java Mapper接口
    • 其次创建一个映射xml文件,内部包含查询sql,当调用上面接口的方法时,最终执行其中的sql。


      sqlmap.xml
    • 最终的调用mapper完成查询


      基于mapper的查询

      经过上述几步最终完成了一次基于mybatis的简单查询。

    Mybatis各组件生命周期

    • SqlSessionFactoryBuilder 目的就是构建工厂,构建完SqlSessionFactory对象后它的作用就结束了,对其回收。
    • SqlSessionFactory的作用就是创建SqlSession,连接并访问一个数据库就只用使用一个SqlSessionFactory就够了,所以是单例的。
    • SqlSession 是一次会话,使用完后应及时关闭。
    • Mapper对应一条SQL的执行,在一个SqlSession事务中使用和销毁。

    相关文章

      网友评论

          本文标题:Mybatis 初识

          本文链接:https://www.haomeiwen.com/subject/jdhdxqtx.html