三亚市建设局官方网站,最新新闻摘抄2022年,海淀重庆网站建设,文创产品创意设计1、为什么会看原理书籍 Mybatis是我们Java后端开发中的主流ORM框架#xff0c;基本都会在工作中用到。所以#xff0c;是既熟悉#xff0c;又陌生。熟悉是因为一直都在使用#xff0c;而陌生则是对于其内部原理还不够深入。刚好近期的工作中#xff0c;又遇到了一个需求基本都会在工作中用到。所以是既熟悉又陌生。熟悉是因为一直都在使用而陌生则是对于其内部原理还不够深入。刚好近期的工作中又遇到了一个需求需要利用mybatis框架做一些输出任务因此正好看一看进一步了解一下其根本好做出相应的对策。 2、学习之后的一些感受
首先mybatis有以下核心组件 ConfigurationMybatis所有的配置信息都维持在Configuration 对象之中SqlSession作为Mybatis 工作的主要顶层API表示和数据库交互的会话完成数据库增删查改功能ExecutorMybatis 执行器是Mybatis 调度的核心负责SQLStatementHandler封装了JDBC Statement 操作负责对JDBC statement 的操作如设置参数将 Statement 结果集转换为List 集合ParameterHandler负责对用户传递的参数转换为JDBC Statement 所需要的参数ResultSetHandler负责将JDBC返回的ResultSet结果集对象转换为List 类型的集合MappedStatementMappedStatement主要维护各个加载的sql语句的配置信息、映射关系等等MapperProxy、MapperProxyFactoryMapper 代理使用原生的Proxy 执行mapper 里的方法 其次执行过程有 1、从mybatis-config.xml读取全局配置文件用于配置数据库连接、属性、类型别名、类型处理器、插件、环境配置、映射器mapper.xml等信息这个过程中有一个比较重要的部分就是映射文件其实是配在这里的这个核心配置文件最终会被封装成一个Configuration对象 2、加载SQL映射文件该文件中配置了操作数据库的SQL语句映射文件是在mybatis-config.xml中加载可以加载多个映射文件。常见的配置的方式有两种一种是package扫描包一种是mapper找到配置文件的位置。 3、用建造者设计模式使用SqlSessionFactoryBuilder对象构建的SqlSessionFactory的最佳作用域是应用作用域。 4、由会话工厂创建SqlSession对象对象中包含了执行SQL语句的所有方法每个线程都应该有它自己的SqlSession实例。SqlSession的实例不是线程安全的因此是不能被共享的所以它的最佳的作用域是请求或方法作用域并把执行器放进SqlSession中。 5、通过Executor执行器负责SQL语句的生成和查询缓存的维护它将根据SqlSession传递的参数动态地生成需要执行的SQL语句同时负责查询缓存的维护。 6、通过MappedStatement对解析的SQL的语句封装一个MappedStatement代表了一个sql语句标签。 7、输入参数类型可以是基本数据类型也可以是Map、List、POJO类型复杂数据类型这个过程类似于JDBC的预编译处理参数的过程有两个属性 parameterType和parameterMap。再封装结果集可以是Map、List、POJO类型复杂数据类型。封装结果集的过程就和JDBC封装结果集是一样的。也有两个常用的属性resultType和resultMap。