MyBatis研习录(02)——MyBatis运行原理及其核心对象


C语言自学完备手册(33篇)

Android多分辨率适配框架

JavaWeb核心技术系列教程

HTML5前端开发实战系列教程

MySQL数据库实操教程(35篇图文版)

推翻自己和过往——自定义View系列教程(10篇)

走出思维困境,踏上精进之路——Android开发进阶精华录

讲给Android程序员看的前端系列教程(40集免费视频教程+源码)


版权声明

  • 本文原创作者:谷哥的小弟
  • 作者博客地址:http://blog.csdn.net/lfdfhl

MyBatis运行原理

在这里插入图片描述

  • 1、mybatis-config.xml是MyBatis的全局配置文件,它配置了MyBatis的运行环境等信息。

  • 2、mapper.xml是sql映射文件,它配置了操作数据库的sql语句。此文件需要在mybatis-config.xml中注册。

  • 3、通过MyBatis配置信息构造SqlSessionFactory(会话工厂)

  • 4、由会话SqlSessionFactory(工厂)创建SqlSession(会话)操作数据库

  • 5、MyBatis底层自定义Executor(执行器)接口用于执行数据库操作,该接口有两个实现:基本执行器和缓存执行器。

  • 6、MappedStatement是MyBatis的底层封装对象,它封装了操作数据库的sql语句,输入参数,输出结果等信息。mapper.xml文件中每一个sql语句对应一个MappedStatement对象,sql语句的id即是MappedStatement的id。

  • 7、MappedStatement将sql的输入参数(Java简单类型、自定义pojo、集合)映射至sql中,即Java映射至sql

  • 8、Executor执行sql语句

  • 9、MappedStatement将查询结果映射为Java类型的参数(Java简单类型、自定义pojo、集合),即sql映射至Java

MyBatis核心对象

在使用MyBatis框架时主要涉及到两个核心对象:SqlSessionFactory和SqlSession;它们在MyBatis中起着至关重要的作用。在此,对这两个对象进行详细介绍。

SqlSessionFactory

SqlSessionFactory是单个数据库映射关系经过编译后的内存镜像,其核心作用就是创建SqlSession。SqlSessionFactory 一旦被创建就应伴随应用程序的运行而长期一直存在,我们没有任何理由对它进行清除或重建。为避免资源的浪费和过渡开销,在应用中最好使用单例模式创建和获取SqlSessionFactory,切勿多次重复创建该对象。

SqlSession

SqlSession主要用于执行持久化操作,该对象中包含了所有执行SQL语句操作的方法。SqlSession不是线程安全的,每个线程都应有一个属于自己的SqlSession实例并且该示例不能够被共享。在使用完SqlSession后应将其关闭,释放资源。

在此,概述SqlSession常用方法:

  • 1、与select、insert、update、delete相关的方法
  • 2、与事务相关的方法,例如:commit( )、rollback( )
  • 3、与Mapper接口相关的方法,例如:getMapper( )
  • 4、与资源释放相关的方法,例如:close( )

请注意:

在执行insert、update、delete操作后需执行commit( )才会切实生效。

发布了1019 篇原创文章 · 获赞 1913 · 访问量 233万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 精致技术 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览