MyBatis学习总结(一)

      MyBatis,是一个支持普通SQL查询存储过程高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。

个人认为MyBatis最大的特点有以下3点:

  • 不屏蔽SQL,意味着可以更为精确地定位SQL语句,也可以对其进行优化和改造,有利于互联网系统性能提高。
  • 提供强大、灵活的映射机制,方便Java开发者使用,提供动态SQL的功能,允许根据不同条件组装SQL,满足各种应用系统经常变化的要求。
  • 提供了使用Mapper的接口编程,只要一个接口和一个XML就能创建映射器,简化开发工作。

MyBatis的核心组件

  • SqlSessionFactoryBuilder(构造器):它会根据配置或者代码来生成SqlSessionFactory,采用的是分步构建的Builder模式。
  • SqlSessionFactory(工厂接口):依靠它来生成SqlSession,使用的是工厂模式。
    • MyBatis中,既可以通过读取配置的XML文件的形式生成SqlSessionFactory,也可以通过Java代码的形式去生成SqlSessionFactory。但推荐建议使用XML文件构建SqlSessionFactory。因为代码的方式在需要修改时会很麻烦。
  • SqlSession(会话):一个既可以发送SQL执行返回结果,也可以获取Mapper的接口。
    • 是其核心接口。SqlSession的作用类似于一个JDBC中的Connection对象,代表着一个连接资源的启用。作用有3个:1、获取Mapper接口。2、发送SQL给数据库。3、控制数据库事务。
  • SQL Mapper(映射器):MyBatis新设计存在的组件,它由一个Java接口和XML文件(或注释)构成,需要给出对应的SQL和映射规则。负责发送SQL去执行,并返回结果。
    • MyBatis中最重要、最复杂的组件,它可以配置以下内容:
      • 描述映射规则。
      • 提供SQL语句,并可以配置SQL参数类型、返回类型、缓存刷新等信息。
      • 配置缓存。
      • 提供动态SQL。

总结:

1、使用SqlSessionFactoryBuilder的作用在于创建SqlSessionFacory,创建后SqlSessionFactoryBuiler就没有作用。

2、SqlSessionFactory类似一个数据库连接池,作用是创建SqlSession接口对象。

3、SqlSession相当一个数据库连接(Connection对象),可以在一个事务里面执行多条SQL,通过它的commit,rollback等方法,提交或者回滚事务。

4、Mapper是一个接口,由SqlSession所创建。Mapper代表的一个请求中业务处理,所以它应该在一个请求中,一旦处理完相关事务,就应该废弃它。

原文地址:https://www.cnblogs.com/herojy886/p/8934055.html