Mybatis架构

Mybatis架构

1、 mybatis配置

SqlMapConfig.xml,此文件作为mybatis的全局配置文件,配置了mybatis的运行环境等信息。

mapper.xml文件即sql映射文件,文件中配置了操作数据库的sql语句。此文件需要在SqlMapConfig.xml中加载。

2、 通过mybatis环境等配置信息构造SqlSessionFactory即会话工厂

3、 由会话工厂创建sqlSession即会话,操作数据库需要通过sqlSession进行。

4、 mybatis底层自定义了Executor执行器接口操作数据库,Executor接口有两个实现,一个是基本执行器、一个是缓存执行器。

5、 Mapped Statement也是mybatis一个底层封装对象,它包装了mybatis配置信息及sql映射信息等。mapper.xml文件中一个sql对应一个Mapped Statement对象,sql的id即是Mapped statement的id。

6、 Mapped Statement对sql执行输入参数进行定义,包括HashMap、基本类型、pojo,Executor通过Mapped Statement在执行sql前将输入的java对象映射至sql中,输入参数映射就是jdbc编程中对preparedStatement设置参数。

7、 Mapped Statement对sql执行输出结果进行定义,包括HashMap、基本类型、pojo,Executor通过Mapped Statement在执行sql后将输出结果映射至java对象中,输出结果映射过程相当于jdbc编程中对结果的解析处理过程。

时间: 2024-07-30 14:54:00

Mybatis架构的相关文章

SpringMVC+Mybatis架构中的问题记录

2014/08/16 记录 今天遇到个问题,折腾了我大约4个小时,好坑啊因为之前没遇到过 我的包是这么分的:com.工程名.模块名.service.impl     在spring 配置这个切面 execution(* com.工程名..*Impl.*(..)) 他 就是找不到com.工程名.模块名.service.impl下面的*Impl类 并且此配置就算配错了,他不报错,并且当我同时用junit测试,同时加载三个配置文件 springMVC.xml spring.xml spring-myb

《深入了解mybatis原则》 MyBatis架构设计和案例研究

MyBatis这是现在很流行ORM框架,这是非常强大.事实上现却比較简单.优雅. 本文主要讲述MyBatis的架构设计思路,而且讨论MyBatis的几个核心部件.然后结合一个select查询实例.深入代码,来探究MyBatis的实现. 一.MyBatis的框架设计        注:上图非常大程度上參考了iteye 上的chenjc_it所写的博文原理分析之二:框架总体设计 中的MyBatis架构体图,chenjc_it总结的很好,赞一个! 1.接口层---和数据库交互的方式 MyBatis和数

Mybatis架构简介

Mybatis与ORM 对象关系映射(即Object Relational Mapping,简称ORM),主要用于关系型数据库和实体之间的映射,主要为了解决对象与关系数据库存在的互不匹配的现象,ORM通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中.Java典型的ORM中间件有:Hibernate,Mybatis. ORM是Object与Relation之间映射,包括Object->Relation和Relation->Object两方面.Hibernate是一

(五)myBatis架构以及SQlSessionFactory,SqlSession,通过代理执行crud源码分析---待更

MyBatis架构 首先MyBatis大致上可以分为四层: 1.接口层:这个比较容易理解,就是指MyBatis暴露给我们的各种方法,配置,可以理解为你import进来的各种类.,告诉用户你可以干什么 2.数据处理层:顾名思义对数据的处理,当接收到一个sql语句时,比如 selecr *from person where id=#{id};  会进行这四步:参数处理---sql解析---sql执行----处理结果,这里我们重点关心sql的执行 3.框架支撑层:一些辅助操作,缓存机制,事务管理,连接

SpringMVC,Spring,Hibernate,Mybatis架构开发搭建之SpringMVC部分

辞职待业青年就是有很多时间来写博客,以前在传统行业技术强度相对不大,不处理大数据,也不弄高并发的,所以学不到什么高端编程技术和架构方法,那么我自己就琢磨搞一个SSH架构的东西出来,希望可以帮助到一些朋友,也希望大拿给出相应的指导意见. 先从用了什么东西说起吧 SSHM=SpringMVC+Spring+Hibernate+Mybatis,至于为什么要这么搞,我先简要的说下. SpringMVC 我最初的想法就是,它比struts2小,属于轻量级的MVC框架,而且和spring可以完美结合在一起.

MyBatis架构设计及源代码分析系列(一):MyBatis架构

如果不太熟悉MyBatis使用的请先参见MyBatis官方文档,这对理解其架构设计和源码分析有很大好处. 一.概述 MyBatis并不是一个完整的ORM框架,其官方首页是这么介绍自己 The MyBatis data mapper framework makes it easier to use a relational database with object-oriented applications. MyBatis couples objects with stored procedur

spring+springMVC+Mybatis架构下采用AbstractRoutingDataSource、atomikos、JTA实现多数据源灵活切换以及分布式事务管理

背景: 1.系统采用SSM架构.需要在10多个MYSQL数据库之间进行切换并对数据进行操作,上篇博文<springMVC+Mybatis(使用AbstractRoutingDataSource实现多数据源切换时)事务管理未生效的解决办法> 2.第一步先通过AbstractRoutingDataSource实现了多数据源的灵活切换,但是后来发现事务不起作用: 3.发现问题是因为重复扫描service包导致第二次扫入容器的BEAN没有纳入事务管理,因此在springMVC的配置文件中排除了对Ser

Mybatis架构与原理

MyBatis功能架构设计mage.png 功能架构讲解: 我们把Mybatis的功能架构分为三层: (1)API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库.接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理. (2)数据处理层:负责具体的SQL查找.SQL解析.SQL执行和执行结果映射处理等.它主要的目的是根据调用的请求完成一次数据库操作. (3)基础支撑层:负责最基础的功能支撑,包括连接管理.事务管理.配置加载和缓存处理,这些都是共用的东西,将他们抽

spring cloud + spring boot + springmvc+mybatis架构

做一个微服务架构需要的技术整理: 壹玖零叁八叁贰伍柒玖 View: H5.Vue.js.Spring Tag.React.angularJs Spring Boot/Spring Cloud:Zuul.Ribbon.Feign.Turbine.Hystrix.Oauthor2.Sleuth.API Gateway.Spring Cloud.Config Eureka.SSO.Spring Cloud.BUS.Turbine.Zipkin.Cache.Spring Cloud Admin.API