mybatis笔记-基本认识

mybatis基本构成

1.SqlSessionFactoryBuilder(构造器):根据配置信息或者代码生成SqlSessionFactory(工厂接口)

2.SqlSessionFactory:解析xml文件保存在org.apache.ibatis.Configuration类中,也是就说Configuration类对象保存着我们配置的mybatis的信息

3.SqlSession:接口类,它类似于你们公司前台的美女客服,它扮演者门面的作用,而真正干活的是Executor接口.你可以认为它是公司的工程师.假设我是客户找你们公司干活,我只需要将需求告诉前台小姐(SqlSession),然后前台小姐会把结果告诉我.而我不关心工程师(Executor)是怎么为我工作的,这个步骤对我来说是黑箱操作
SqlSession类似于一个JDBC中的Connection接口对象,我们需要保证每次用完后正常的关闭它,所以把它放在finally中.

xml文件配置方式实现Mapper

由一个接口和xml文件构成

问题:我们使用的是仅仅是Java接口和一个xml文件去实现Mapper,java接口不是实现类,一个没有实现类的接口怎么能够运行了?

底层使用的是动态代理,我们可以这样理解:我们会mybatis上下文中描述这个接口,而mybatis会为这个接口生成代理类对象,代理对象会根据"接口全路径+方法名"去匹配,找到对应的xml文件去按成所需要的任务

声明周期

SqlSessionFactoryBuilder:利用xml或java编码获取资源来构建SqlSessionFactory的,它的作用是一个构造器,它的作用就已经完结,失去了存在的意义,所以它的生命周期只存在于方法的局部

SqlSessionFactory:它的作用是创建SqlSession,相当于Connection对象,每次访问数据库的时候都需要用到会话,所以SqlSessionFactory在mybatis的整个生命周期,为了防止资源的耗尽,SqlSessionFactory是单例的,一个数据库只对应一个SqlSessionFactory

SqlSession:它的生命周期是请求数据库处理事务的过程中,它是一个线程不安全的对象
这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq847540343/article/details/78334498