本文是读 杨开振老师的《深入浅出 Mybatis技术原理与实践》第二章所记录的笔记,本文绝对没有推荐书的意思,只是看着记录学习,同时分享自己的观点而已。
mybatis 核心组件
1)SqlSessionFactoryBuilder:构造器,他会根据配置信息或者代码生成 SqlSessionFactory
2)SqlSessionFactory:依靠工厂来生成 SqlSession
3)SqlSession:是一个既可以发送SQL去执行并且返回结果,也可以获取Mapper接口
4)SQL Mapper:由一个Java接口和XML文件(或注解)构成,需要给出对应的SQL和映射规则,其负责发送SQL执行并且返回映射结果。
核心组件生命周期
1)SqlSessionFactoryBuilder:利用、解析xml构造 SqlSessionFactory,因为这整个系统我们只需要一个SqlSessionFactory ,所以,只要项目初始化的时候构造出了 SqlSessionFactory,那么 SqlSessionFactoryBuilder就失去了价值,所以可以定义为一个局部变量。
2)SqlSessionFactory,他的主要作用是构造SqlSession,因为SqlSession就像是JDBC的Connection,那么很多时候都需要它来创建,但是由于不同的SqlSessionFactory创建出的SqlSession会不好管理,所以系统中只需要一个SqlSessionFactory,这样他就可以通过数据库连接池清晰配置管理了,所以SqlSessionFactory在系统中应该是单例的。
3)SqlSession,类似于JDBC的Connection,所以他应该是在处理事务的过程中,从事务的开启到事务的提交或回滚。因为数据库连接资源的重要性,所以每次使用SqlSession都必须关闭资源。
4)Mapper,很明显他是在SqlSession处理业务时被使用,所以他的生命周期应该等同于SqlSession。