初识Mybatis-Spring

Mybatis源码解析之Spring集成mybatis-spring分析 Mybatis源码解析之核心类分析 Mybatis源码解析之初始化分析 Mybatis源码解析之执行流程解析 Mybatis源码解析之数据库连接和连接池 Mybatis源码解析之事务管理 Mybatis源码解析之缓存机制(一):一级缓存 Mybatis源码解析之缓存机制(二):二级缓存 Mybatis源码解析之插件机制 前面的几篇相关博客都针对原生的mybatis进行解析,从本文开始将针对myba... 阅读详情

注:本文大量参考Mybatis-Spring文档http://mybatis.github.io/spring/zh/

排版不规范,并且主要是供自己参考所用,所以文章中可能有些批注,有些发现的问题。后面可能有相应的解释。仅供参考。


 在不与spring整合的时候,一般会生成一个SqlSessionFactory,然后从中获得SqlSession,类似于hibernate的session,封装了一个jdbc连接或者说是preparedstatement可以直接对数据库操作。

例如:

SqlSession session = sqlSessionFactory.openSession();
try {
  Blog blog = (Blog)session.selectOne("org.mybatis.example.BlogMapper.selectBlog",101);
} finally {
  session.close();
}

 

来自<http://mybatis.github.io/mybatis-3/zh/getting-started.html>

但这是老版本的做法。更现代的做法是:

SqlSession session = sqlSessionFactory.openSession();
try {
  BlogMapper mapper =session.getMapper(BlogMapper.class);
  Blog blog =mapper.selectBlog(101);
} finally {
  session.close();
}

 

来自<http://mybatis.github.io/mybatis-3/zh/getting-started.html>

与上面两种写法相对应的:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.mybatis.example.BlogMapper">
  <select id="selectBlog"resultType="Blog">
    select * from Blog where id =#{id}
  </select>
</mapper>

 

来自<http://mybatis.github.io/mybatis-3/zh/getting-started.html>

 

差别在于:

Blog blog = (Blog)session.selectOne("org.mybatis.example.BlogMapper.selectBlog", 101);

 

BlogMapper mapper = session.getMapper(BlogMapper.class);
Blog blog = mapper.selectBlog(101);

 

来自<http://mybatis.github.io/mybatis-3/zh/getting-started.html>

 

 

两者都使用了selectBlog(int i);方法。从上面xml文件可以看出来这个方法对应着xml中的一个语句的id。

 

对于像 BlogMapper 这样的映射器类(Mapper class)来说,还有另一招来处理。它们的映射的语句可以不需要用 XML来做,取而代之的是可以使用 Java 注解。比如,上面的 XML 示例可被替换如下:

package org.mybatis.example;
public interface BlogMapper {
  @Select("SELECT * FROM blog WHEREid = #{id}")
  Blog selectBlog(int id);
}

 

来自<http://mybatis.github.io/mybatis-3/zh/getting-started.html>

 

注意 ****Maper都是采用的接口,而非实体类。为其指定sql语句时,可以通过两种方法:通过注解(简单SQL可行)或者是通过xml文件。

 

 

 

Mybatis Spring中一些常用的Bean

SqlSessionFactoryBean

org.Mybatis.spring.SqlSessionFactoryBean     需要一个datasource

如果映射器xml文件不在映射器类相同路径下,那么需要配置。有两种选择:1.手动在mybatis的xml配置文件中使用<mappers>部分来指定类路径。2.使用bean的mapperLocations属性

案例:

<bean id="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean">
  <propertyname="dataSource" ref="dataSource" />
  <propertyname="mapperLocations"value="classpath*:sample/config/mappers/**/*.xml"/>
</bean>

 

来自<http://mybatis.github.io/spring/zh/factorybean.html>

 

 

MapperFactoryBean

org.mybatis.spring.mapper.MapperFactorybean需要mapperInterface(即***Mapper),需要sqlSessionFactory

一旦配置好后,可以将其注入到任意的由Spring管理的bean中,一般是将其注入到service对象中。但是貌似要配置好多,需要用到多少个domain对象,就得创建多少个mapper。

案例:

public class FooServiceImpl implements FooService {

private UserMapper userMapper;

public void setUserMapper(UserMapper userMapper) {
  this.userMapper = userMapper;
}

public User doSomeBusinessStuff(String userId) {
  returnthis.userMapper.getUser(userId);
}

 

来自<http://mybatis.github.io/spring/zh/getting-started.html>

SqlSession

在 MyBatis 中,你可以使用 SqlSessionFactory 来创建 SqlSession。一旦你获得一个 session之后,你可以使用它来执行映射语句,提交或回滚连接,最后,当不再需要它的时 候, 你可以关闭 session。 使用 MyBatis-Spring 之后,你不再需要直接使用 SqlSessionFactory 了,因为你的 bean 可以通过一个线程安全的 SqlSession 来注入,基于 Spring的事务配置 来自动提交,回滚,关闭 session。

 

注意通常不必直接使用 SqlSession。 在大多数情况下 MapperFactoryBean, 将会在 bean中注入所需要的映射器。下一章节中的 MapperFactoryBean会解释这个细节。

 

来自<http://mybatis.github.io/spring/zh/sqlsession.html>

 

SqlSessionTemplate

此类负责管理Mybatis的SqlSession。是线程安全的,可以被多个DAO共享。

当调用 SQL 方法时, 包含从映射器 getMapper()方法返回的方法, SqlSessionTemplate 将会保证使用的SqlSession 是和当前 Spring 的事务相关的。此外,它管理 session 的生命 周期,包含必要的关闭,提交或回滚操作。

 

SqlSessionTemplate 实现了 SqlSession接口,这就是说,在代码中无需对 MyBatis 的 SqlSession 进行替换。 SqlSessionTemplate 通常是被用来替代默认的MyBatis 实现的 DefaultSqlSession , 因为模板可以参与到 Spring 的事务中并且被多个注入的映射器类所使用时也是线程安全的。相同应用程序中两个类(应该指SqlSessionTemplate,DefaultSqlSession)之间的转换可能会引起数据一致性的问题。

 

来自<http://mybatis.github.io/spring/zh/sqlsession.html>

 

 

 

SqlSessionTemplate 对象可以使用 SqlSessionFactory 作为构造方法的参数来创建。

<bean id="sqlSession"class="org.mybatis.spring.SqlSessionTemplate">
  <constructor-arg index="0"ref="sqlSessionFactory" />
</bean>

 

来自<http://mybatis.github.io/spring/zh/sqlsession.html>

这样这个bean就可以注入到DAObean中了。注意,dao本身是个接口,应该注入到实现中。(这种做法类似于hibernate和传统jdbc程序分层结构,但后面讲可能不用写实现)

注意到文档写的还是有点乱,Dao的实现可能就是Mapper

SqlSessionTemplate 有一个使用ExecutorType 作为参数的构造方法。用来创建对象,例如一个批量SqlSession。

例如:

<bean id="sqlSession"class="org.mybatis.spring.SqlSessionTemplate">
  <constructor-arg index="0"ref="sqlSessionFactory" />
  <constructor-arg index="1"value="BATCH" />
</bean>

 

现在你所有的语句可以批量操作了,下面的语句就可以在 DAO中使用了。

public void insertUsers(User[] users) {
   for (User user : users) {
    sqlSession.insert("org.mybatis.spring.sample.mapper.UserMapper.insertUser",user);
   }
 }

(难道说没有加这个属性之前不能用这个语句?待测试。)

来自<http://mybatis.github.io/spring/zh/sqlsession.html>

 

SqlSessionDaoSupport

一个抽象的支持类,调用getSqlSession()方法得到一个SqlSessionTemplate。

SqlSessionDaoSupport 需要一个 sqlSessionFactory 或 sqlSessionTemplate 属性来设 置

 

来自<http://mybatis.github.io/spring/zh/sqlsession.html>

 

 

MapperFactoryBean

数据映射器接口可以按照如下做法加入到 Spring 中:

<bean id="userMapper"class="org.mybatis.spring.mapper.MapperFactoryBean">
  <propertyname="mapperInterface"value="org.mybatis.spring.sample.mapper.UserMapper" />
  <propertyname="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>

看来对于一些按类型注入的自动注入要小心使用,最好加上名称限制。目测每一个mapper都需要一个这样的Bean啊。

其实这里的UserMapper就相当于hibernate中的UserDao(接口)

来自<http://mybatis.github.io/spring/zh/mappers.html>

 

如果UserMapper有一个对应的Mybatis的xml映射器文件,如果xml文件在类路径的位置和映射器接口相同时,他会被MapperFactoryBean自动解析,没有必要再Mybatis配置文件中去制定映射器。除非接口与xml映射文件不在同一路径下。参考SqlSessionFactoryBean的configLocation属性(在github的一份源码中看到的是mapperLocations,其value="classpath:rml/mapping/*.xml")。

 

 

 

注入映射器

MapperFactoryBean

       上面的代码中都是手工使用SqlSessionDaoSupport或者SqlSessionTemplate编写数据访问对象(Dao)的实现,Mybatis-Spring提供了一个动态代理的实现:MapperFactoryBean 。这个类可以直接注射数据访问器接口道Service层的bean中,不需要编写DAO实现的代码,由Mybatis-Spring创建代理。

 

       MapperFactoryBean创建的代理控制打开和关闭Session,并且将异常包装到Spring的DataAccessException异常中,提供准确详细干净的异常信息。此外,如果需要参与到一个已经存在活动事物中,代理将会开启一个新的Spring事物。

 

 

MapperScannerConfigurer

为了解决上面的疑惑(目测每一个mapper都需要一个这样的Bean啊。)这样确实太麻烦。所以:

没有必要再Spring的xml配置文件中注册所有的映射器(Mapper)

<bean id="userMapper"class="org.mybatis.spring.mapper.MapperFactoryBean">
  <propertyname="mapperInterface"value="org.mybatis.spring.sample.mapper.UserMapper" />
  <propertyname="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>

现在只需要一个MapperScannerConfigurer,他将会查找类路径下的映射器并自动为他们创建成MapperFactoryBean。例如:

<beanclass="org.mybatis.spring.mapper.MapperScannerConfigurer">
  <propertyname="basePackage" value="org.mybatis.spring.sample.mapper"/>
</bean>

 

来自<http://mybatis.github.io/spring/zh/mappers.html>

       basePackage属性是为了让你为映射器接口文件设置基本的包路径。可以使用分啊后或者都好作为分隔符设置多于一个的包路径,每个映射器(接口)将会在指定的包路径中被递归的搜索。

MapperScannerConfigurer属性不支持使用了PropertyPlaceholderConfigurer的属性替换

         没有必要去指定SqlSessionFactory或者SqlSessionTemplate,因为MapperScannerConfigurer将会创建MapperFactoryBean,之后自动装配。但是如果使用了一个以上的datasource,那么自动装配可能会失效

这种情况下 ,你可以使用 sqlSessionFactoryBeanName 或 sqlSessionTemplateBeanName属性来设置正确的 bean 名 称来使用。这就是它如何来配置的,注意 bean 的名称是必须的,而不是 bean 的引用,因 此,value属性在这里替代通常的 ref:

<property name="sqlSessionFactoryBeanName"value="sqlSessionFactory" />

 

来自<http://mybatis.github.io/spring/zh/mappers.html>

MapperScannerConfigurer 支 持 过 滤 由 指 定 的 创 建 接 口 或 注 解 创 建 映 射 器 。annotationClass 属性指定了要寻找的注解名称。 markerInterface 属性指定了要寻找的父接口。如果两者都被指定了,加入到接口中的映射器会匹配两种标准。默认情况下,这两个 属性都是 null,所以在基包中给定的所有接口可以作为映射器加载。

 

被发现的映射器将会使用 Spring 对自动侦测组件(参考 Spring 手册的 3.14.4)默认的命名策略来命名。也就是说,如果没有发现注解,它就会使用映射器的非大写的非完全限定类 名。但是如果发现了@Component 或 JSR-330 的@Named注解,它会获取名称。注意你可以 配 置 到 org.springframework.stereotype.Component ,javax.inject.Named(如果你使用 JSE 6 的话)或你自己的注解(肯定是自我注解)中,这 样注解将会用作生成器和名称提供器。

 

来自<http://mybatis.github.io/spring/zh/mappers.html>

 


【Spring】— 初识MyBatis (二) 模糊查询的实现只需要在映射文件中通过元素编写相应的SQL语句,并通过SqlSession的查询方法执行该SQL语句即可。 阅读详情

相关推荐

【Spring】— 初识MyBatis (一)

MyBatis是一个支持普通SQL查询、存储过程以及高级映射的持久层框架,它消除了几乎所有的JDBC代码和参数的手动设置以及对结果集的检索,并使用简单的XML或注解进行配置和原始映射,用以将接口和Java的POJO(Plain Old Java Object,普通Java对象)映射成数据库中的记录,使得Java开发人员可以使用面向对象的编程思想来操作数据库。MyBatis框架也被称为ORM(Object/ Relational Mapping,对象关系映射)框架。

衍生星球的博客 722

Spring+MyBatis源码解析之SqlSessionTemplate

1、产生的背景 使用`MyBatis`就要保证`SqlSession`实例的线程安全,就必须要为每一次的请求单独创建一个`SqlSession`。但如果每一次请求都要用`openSession()`自己去创建,就比较麻烦了。 ​ 所以在spring中,我们使用的mybatis-spring包中提供了一个线程安全的SqlSession的包装类sqlSessionTemplate,用它来替代SqlSession.因为他是线程安全的,所以可以在所有的Service层来共享一个实例(默认为单例)。 ​ 这个跟Sp

qq_33996921的博客 1315

硬件笔记——HDMI接口

HDMI可以同时传输视频信号、音频信号和控制信号。其中高速信号有四组:从Data TX到Data RX有3组差分数据信号(TMDS_DATA0~2)和一组差分时钟信号(TMDS_CLOCK)。以及若干低速线。脚编号信号名称信号类型功能说明1热插拔检测连接状态检测。接收端通过此引脚向源端发送高电平信号,通知其已连接并可以开始读取EDID。2UTILITY车载用途悬空3TMDS数据通道2差分信号正极,用于传输视频像素、音频和数据包。4TMDS数据2屏蔽。

2501_94625908的博客 543

通俗易懂理清mybatis中SqlSession、SqlSessionTemplate、SessionFactory和SqlSessionFactoryBean之间的关系

我潇洒的灰大狼又回来啦。今天送大家的一句话是: *保持耐心,永远年轻,永远热泪盈眶。* 前言 先容我哭一会儿,呜呜呜~昨晚写了一半的文章,还没保存就盖上盖子准备回家,拔下电源准备把电脑塞进书包带回家完成时,懒惰阻止了我,最终还是没带回家,于是,遭报应了,今天早上来,电脑直接就是没电关机了,开机后写的文章再也找不回来了...(不争气的mac真是对不起我前面特地写了一篇文章来夸赞mac真香啊...

m0_37136046的博客 2353

在Cursor IDE中集成Datadog监控:自然语言查询实战指南

在云原生和微服务架构中,可观测性(Observability)已成为保障系统稳定性的核心技术支柱。其核心原理是通过日志(Logs)、指标(Metrics)和追踪(Traces)三大支柱,实时采集并呈现系统的运行状态。这项技术的价值在于,它让开发者能够透视复杂的分布式系统,快速定位性能瓶颈与故障根因。在实际的工程实践中,开发人员常常需要在编码环境与监控平台之间频繁切换,这种上下文切换严重影响了排障效率。本文聚焦于如何利用Model Context Protocol(MCP),将强大的Datadog可观测性平台

weixin_42519772的博客 348

学Simulink——基于新型动力与推进系统的场景实例:混合动力无人机的续航能力优化

通过本次 Simulink 仿真,你已掌握:✅混合动力系统架构设计✅内燃机、电机、电池联合建模✅三种能量管理策略(规则型、功率跟随、优化型)✅续航能力仿真与对比分析✅参数调优与优化方法核心收获混合动力是突破续航瓶颈的有效路径能量管理策略(EMS)决定系统效率电池SOC管理是关键Simulink 支持复杂多能源系统的协同仿真掌握混合动力无人机技术,你将具备设计长航时巡检机、应急通信平台、边境巡逻系统的能力。

xiaoheshang_123的博客 101

Java config 方式配置SSM,(零xml方式配置)-------小记(2)

三、mybatis和数据库及事务的配置:package com.io.ssm.framework.config; import com.alibaba.druid.pool.DruidDataSource; import org.mybatis.SqlSessionFactoryBean; import org.mybatis.annotation.MapperScan; import org....

一只迷途的小猿的博客 732

银行一表通监管报送系统详解

国家金融监管总局对于“一表通”的总体描述为:通过建立一套明细级、标准化的数据体系和汇总计算规则,将银行机构传送至监管可信区的业务明细数据汇总生成财务指标、监管指标和监管报表,大幅提升监管数据时效性,统一数据标准,实现数据间的穿透和整合,同时改变机构多头报送数据模式,减轻机构报送负担。

银行信息系统应用架构详解 2522

Cannot find class [org.mybatis.spring.mapper.MapperFactoryScannerConfigurer]

出现如下错误: org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.mybatis.spring.mapper.MapperScannerConfigurer] for bean with name ‘org.mybatis.spring.mapper.MapperScanne...

weixin_42120795的博客 2175

实战封神!YOLOv7 轻量化部署全攻略:ONNX格式转换+TensorRT极致加速(速度直接提升3-5倍,精度无损)

部署核心链路,这是YOLO系列部署的最优解,速度提升3~5倍,精度无损;ONNX是桥梁:解决模型兼容性问题,简化后能去掉冗余节点,是TensorRT加速的前提;TensorRT是核心:NVIDIA显卡的极致加速引擎,FP16量化是速度与精度的最优平衡,无需手动配置,一键开启;轻量化终极组合YOLOv7-tiny + 416尺寸 + TensorRT FP16,速度提升5~8倍,满足所有实时检测场景;避坑核心:转换参数必加,推理尺寸必须一致,engine文件显卡专属。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 308

【WRF安装第三期(Ubuntu)】搭建WRF编译所需系统-第三方依赖库安装

WRF安装第三期:搭建WRF编译所需系统-第三方依赖库安装

WW、forever的博客 3138

初识Mybatis与Spring

在Java EE 中 运用到的MyBatis3与 Spring 5

m0_56404706的博客 1035

【如何学习CAN总线测试】——Python+Robot Framework框架实现UDS诊断自动化

由于项目需要进行UDS诊断测试,所以对这方面进行了研究学习,网上很少能查询到相关资料,故记录一下UDS自动化测试开发过程,由于保密原则,案例都是Demo,希望能帮到感兴趣的朋友。

测试领域技术分享 7471

学习总结:初识spring,springboot,mybatis

初学框架,仅作为自身总结记录

qq_44592915的博客 692

STM32(HAL库)驱动OLED

通过STM32F103C8T6单片机采用HAL库方式对0.96寸OLED(IIC通讯)屏幕进行驱动。

weixin_44597885的博客 8804

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Spring(初识Mybatis)

初识Mybatis 什么是 MyBatis? MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录 mybatis简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。传统的 JD

yangyingjian123的博客 226

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Spring之MyBatis——初识MyBatis_MyBatis项目的搭建

一、为什么使用MyBatis 为了和数据库进行交互,通常的做法是将SQL语句写在Java代码中,SQL语句和Java代码耦合在一起不利于后期维护修改,而MyBatis能够帮助我们将SQL语句和Java代码分离,方便了后期因需求变动而对SQL语句进行修改。 二、搭建MyBatis (1)准备 创建Java工程,新建文件夹lib中导入mybatis-3.4.4.jar...

Kiwi_no的博客 301

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

初识spring(mybatis) javascript调试

相关jar包(注意替换掉特定数据库的jar包和特点tomcat的数据库连接池的jar包) https://pan.baidu.com/s/1-FvtwAp_qfjtXxr10v7C0A 创建一个web工程springa, 把再识html+servlet 相关的代码复制到新的工程,包中间名称springa 添加jar包到项目 web.xml<!-- 配置核心控制器 --&g...

388

初识spring mvc + mybatis

背景 这段时间去另一个项目组做一个spring mvc + mybatis的项目,因为我以前从来没有接触过这方面的技术(T_T)所以刚开始遇到了一些困难,在此记录一下自己的错误,本人小白,说的错误的地方还请前辈指出 新奇点 使用xml配置数据库的DAO方法 以前我们用hibernate配置数据库的时候是使用注解的,增删改查放在DAO层,而在这个项目中的mybatis是使用xml写增删改查的

Slience 1万+

初识Spring(九) | Spring整合Mybatis

目录整合mybatis优化 整合mybatis mybatis实现对数据库操作的高效管理,而spring用一种新的方式实现对对象的创建和使用。 整合mybatis就是将mybatis的数据操纵和spring的控制反转结合起来。 导入相关jar包 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://w

super1223的博客 196

初识SSM框架:Spring、Spring MVC和MyBatis的集成应用

SM框架是指Spring、Spring MVC和MyBatis三个开源框架的组合,它们各自解决了Web应用程序开发中的不同方面的问题:Spring框架提供了IoC(控制反转)和AOP(面向切面编程)功能,可以帮助开发者构建可维护、可扩展和可测试的Web应用程序。Spring MVC框架是Spring的一个模块,提供了基于MVC(Model-View-Controller)模式的Web应用程序开发框架。MyBatis是一个基于Java的持久层框架,可以帮助开发者将数据库操作与Java对象映射起来。

weixin_62079735的博客 1706

【 初识 Spring MyBatis 查询数据库 】

对于 JDBC 来说,整个操作⾮常的繁琐,我们不但要拼接每⼀个参数,⽽且还要按照模板代码的⽅式,⼀步步的操作数据库,并且在每次操作完,还要⼿动关闭连接等,⽽所有的这些操作步骤都需要在每个⽅法中重复书写。添加 MyBatis 框架⽀持分为两种情况:⼀种情况是对⾃⼰之前的 Spring 项⽬进⾏升级,另⼀种情况是创建⼀个全新的 MyBatis 和 Spring Boot 的项⽬,下⾯我们分别来演示这两种情况的具体实现。因此这两个都是需要添加的。由此可见,成功的查询到了 数据库中的用户信息!

qq_64317046的博客 1329

初识 spring整合定时任务Quartz+mybatis

1.spring-quartz.xml 如下代码  配置 1.指定具体的自定义的  定时任务类(自定义对象) 2.触发器收入此定时任务对象 3.调度器收入触发器 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/ao

annghi的博客 3316

初识spring-boot中嵌入Mybatis(一)

Mybatis里面使用接口对应映射XML文件,我们先搞定在IDEA中生成我们想要的XML文件这件事。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/2019053015252180.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9...

weixin_42172228的博客 381

SSM框架开发(spring、spring MVC、myBatis) 之 初识MyBatis

Mapper接口开发方法只需要程序员编写Mapper接口,由Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体同上Dao接口实现类方法。3. Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql的parameterType的类型相同。4. Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同。IDEA插件安装: File->Setting->Plugins->Free Mybatis plugin。

AREHTH的博客 201

Java EE(Spring+Spring MVC+MyBatis)从入门到精通企业级应用开发教程——1初识MyBatis框架

SqlSession内部通过执行器Executor操作数据库,执行器将待处理的SQL信息封装到MappedStatement对象中,MappedStatement对象中存储了要映射的SQL语句的id、参数等。软件框架是一种通用的、可复用的软件环境,它提供特定的功能,助力软件应用、产品和解决方案的开发工作。会话对象本身不能直接操作数据库,MyBatis底层定义了一个Executor接口用于操作数据库,执行器会根据SqlSession传递的参数动态的生成需要执行的SQL语句,同时负责查询缓存地维护。

2301_82019265的博客 991
上一篇: maven配置
下一篇: Spring MVC 静态资源的访问
Chenctrl
博客等级 码龄11年 2粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值