Mybatis入门实例(四)——MyBatis与Spring 3.X的整合

Mybatis与Spring的整合 10.1 整合环境搭建 Spring和MyBatis的整合主要涉及准备所需的JAR包和编写配置文件,下面将详细介绍。 10.1.1 准备所需的JAR包 要实现MyBatis与Spring的整合,需要这两个框架相关的JAR包,除此之外,还需要其他的JAR包来配合使用。 1.所需Spring框架的JAR包 Spring框架所需要准备的JAR包共10个,其中包括4个核心模块JAR、AOP开发使用的JAR、JDBC和事务的JAR(其中核心容器依赖的commons-logging的JAR在MyBatis框架的lib包 阅读详情

这篇文章主要是说明了Spring3和MyBatis的整合方法,之所以要整合就是将MyBatis创建factory等各种繁冗的工作以及对session的管理、事务的管理交由spring容器帮我们管理,省心省力。

这个项目是在我的前几篇文章的基础上加入spring的内容,关于MyBatis的项目如何建立请查阅我之前的关于MyBatis的帖子。

 

整个的项目结构如下:

  1. 先把包都导入吧,下面是所有需要的包,spring的包最恶心,共计需要18个包,而且从spring官网下载的zip里面仅仅有spring的jar包,引用的其他相关的包没有,好不容易终于凑齐了,全部都在最后面的示例项目中
  2. 建立applicationContext.xml文件,放在类路径下面,内容如下:
Xml代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans  
  3.     xmlns="http://www.springframework.org/schema/beans"  
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  5.     xmlns:p="http://www.springframework.org/schema/p"  
  6.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">  
  7.   
  8.     <!-- 配置c3p0数据源 -->  
  9.     <bean id="c3p0DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">  
  10.         <property name="driverClass" value="com.mysql.jdbc.Driver"/>  
  11.         <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test" />  
  12.         <property name="user" value="root" />  
  13.         <property name="password" value="root" />  
  14.         <property name="initialPoolSize" value="10" />  
  15.         <property name="minPoolSize" value="5" />  
  16.         <property name="maxPoolSize" value="30" />  
  17.         <property name="acquireIncrement" value="10" />  
  18.         <property name="maxIdleTime" value="10" />  
  19.         <property name="maxStatements" value="0" />  
  20.     </bean>  
  21.       
  22.     <!-- 配置SessionFactory,使用上面的c3p0数据源作为数据库连接 -->  
  23.     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
  24.         <property name="dataSource" ref="c3p0DataSource"/>  
  25.     </bean>  
  26.     <!-- 声明式事务管理 -->  
  27.     <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
  28.         <property name="dataSource" ref="c3p0DataSource" />  
  29.     </bean>  
  30.     <!-- 配置Mapper,相当于dao -->  
  31.     <bean id="personMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">  
  32.         <property name="mapperInterface" value="org.qiuqiu.dao.PersonMapper"/>  
  33.         <property name="sqlSessionFactory" ref="sqlSessionFactory"/>  
  34.     </bean>  
  35.       
  36. </beans>  
 上面的配置文件我就不多说了,一个是数据源,连接数据库用的,第二个是让Spring管理session用的,第三个是声明式事务,最后一个就是dao了。
有一点必须注意,interface、mapper file、mapper namespace这三个必须对应(并不是完全一样,而是对应),正确的写法如下:
interface:org.qiuqiu.dao.PersonMapper
mapper file:org/qiuqiu/dao/PersonMapper.xml
mapper namespace:org.qiuqiu.dao.PersonMapper
这三个必须对应,否则会报以下错误:
Java代码  收藏代码
  1. Exception in thread "main" java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for ...  
  2. at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:594)  
  3. at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:436)  
  4. at org.apache.ibatis.session.Configuration.getMappedStatement(Configuration.java:428)  
  5. at org.apache.ibatis.binding.MapperMethod.setupCommandType(MapperMethod.java:188)  
  6. at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:51)  
  7. at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:37)  
  8. at $Proxy5.selectByExample(Unknown Source)<span style="white-space: normal; background-color: #ffffff;"> </span>  

3.测试类,如下:
Java代码  收藏代码
  1. package org.qiuqiu.test;  
  2.   
  3. import java.util.List;  
  4.   
  5. import org.qiuqiu.dao.PersonMapper;  
  6. import org.qiuqiu.vo.Person;  
  7. import org.qiuqiu.vo.PersonExample;  
  8. import org.springframework.context.ApplicationContext;  
  9. import org.springframework.context.support.ClassPathXmlApplicationContext;  
  10.   
  11. public class SpringTest {  
  12.   
  13.     public static void main(String[] args) {  
  14.     ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");  
  15.     PersonMapper pm = ctx.getBean("personMapper", PersonMapper.class);  
  16.     PersonExample example = new PersonExample();  
  17.     example.createCriteria().andAgeLessThan(10);  
  18.     List<Person> list = pm.selectByExample(example);  
  19.     for (Person p : list) {  
  20.         System.out.println(p.getName() + "  " + p.getAge() + "  "+ p.getPassword());  
  21.     }  
  22.     }  
  23.   
  24. }  
 附件中会包含所有的jar包以及数据库表
Spring5整合MyBatis3 目录 Spring5整合MyBatis3 1.完成配置文件 2.持久层功能实现 3.服务层功能的实现 4.控制层功能实现 5.jsp页面 部署项目之后测试: Spring5整合MyBatis3 这是源码地址:https://download.csdn.net/download/qq_41900081/10785290 先说一下整合过程中解决比较久的低级问题: 1.... 阅读详情

相关推荐

Spring 如何整合 Mybatis 的详细讲解

文章目录一、jar 包介绍1、 Mybatis 的 jar 包:2、 Mybatis 整合 Spring 的 jar 包:3、 Spring 的 jar 包:4、 数据库驱动 jar 包:二、搭建环境1、 创建项目2、 添加 jar 包3、 创建配置文件4、 添加 log4j 配置文件5、 创建映射配置文件与接口6、 创建实体类7、 创建业务层三、配置 Spring 与 Mybatis 整合1、 配置解析 properties 文件1.1、 添加 db.properties 文件1.2、 修改 Spring

康康要加油的博客 3082

Spring3集成MyBatis

在开发过程中,对持久层的框架集成是必需的,本章将通过一个示例演示如何集成 MyBatis 框架实现步骤向 Spring 项目添加两个 jar 包:mybatis-xxx.jar,mybatis-spring-xxx.jar,并 build path 到项目;当然还需要添加对应数据库的驱动包,视具体情况而定在 src 目录下添加 application-context.xml 配置文件,添加如下代码;此处演示了 3 种配置方式;实际使用只需选择其中一种-- 读取配置文件 -- >

少年闰土 269

Spring Boot 3.5与MyBatis整合深度解析与优化实践

ORM框架作为Java企业级应用的核心组件,通过对象关系映射技术实现数据库操作的高效封装。MyBatis以其独特的SQL灵活性设计,在需要精细控制查询性能的金融、大数据等场景中展现优势。其核心原理基于动态代理机制,将Mapper接口转化为可执行的SQL语句,同时支持XML与注解两种映射方式。在Spring Boot生态中,通过自动配置实现零样板代码整合,最新版本更可利用Java 17的record特性简化DTO设计。针对高频的企业级需求,二级缓存优化可采用Redis分布式方案,而虚拟线程技术能显著提升IO密

weixin_30268921的博客 434

Spring 03 Spring 整合 MyBatis

Spring 整合 MyBatis 文章目录Spring 整合 MyBatis一、学习目标1.1.本章目标1.2.Maven依赖包1.3MyBatis开发环境搭建1.4.MyBatis-Spring二、基本整合方式2.1.基本整合方式2-12.2.基本整合方式2-22.3.实现Spring对MyBatis的整合三、映射器整合方式3.1.映射器整合方式3.2.使用MapperFactoryBean注入映射器3.3.映射器整合方式3.4.映射器整合方式3-3四、配置声明式事务4.1.配置声明式事务4.2.配置声

云哥的博客 1936

【Spring】— MyBatis与Spring的整合

在MyBatis+Spring的项目中,虽然使用传统的DAO开发方式可以实现所需功能,但是采用这种方式在实现类中会出现大量的重复代码,在方法中也需要指定映射文件中执行语句的id,并且不能保证编写时id的正确性(运行时才能知道)。执行上述方法后,控制台的输出结果如图所示。Spring框架所需要准备的JAR包共10个,其中包括4个核心模块JAR、AOP开发使用的JAR、JDBC和事务的JAR(其中核心容器依赖的commons-logging的JAR在MyBatis框架的lib包中已经包含)。

衍生星球的博客 1695

Spring与MyBatis整合实践案例

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。MyBatis 的工作原理可以概括为以下几个步骤:1.加载配置文件和映射器。

weixin_35749796的博客 839

Spring3---spring 整合 mybatis 步骤

配置选项:SqlSessionFactoryBean提供了一些配置选项,如dataSource用于指定数据源,configLocation用于指定MyBatis的配置文件位置,mapperLocations用于指定Mapper接口和对应的Mapper XML文件的位置等。配置选项:MapperScannerConfigurer提供了一些配置选项,如basePackage用于指定要扫描的包路径,annotationClass用于指定要扫描的注解类型,markerInterface用于指定要扫描的接口类型等。

lyf1234__的博客 440

Spring3整合Mybatis

NULL 博文链接:https://1194867672-qq-com.iteye.com/blog/1584711

Mybatis入门实例

这篇文章主要是说明了Spring3和MyBatis的整合方法,之所以要整合就是将MyBatis创建factory等各种繁冗的工作以及对session的管理、事务的管理交由spring容器帮我们管理,省心省力。 这个项目是在我的前几篇文章的基础上加入spring的内容,关于MyBatis的项目如何建立请查阅我之前的关于MyBatis的帖子。   整个的项目结构如下: 先把...

圣米格利托 184

AIR780E二次开发点灯(LuatOS)

Air780E的LuatOS点灯教程,二次开发教程,可用于所有ec618平台,无需SDK

rootuseres的博客 1万+

高速设计注意事项总结——MDI篇

在以太网高速通信系统中,MDI(Medium Dependent Interface,介质相关接口)是连接物理层芯片(PHY)与传输介质(如网线)的关键接口,其设计直接影响信号完整性、传输速率和抗干扰能力。本文围绕 MDI 及 RJ45 接口电路、关键参数、设计与布线要点展开,为高速以太网设计提供参考。本文包含MDI 及 RJ45 接口电路组成、电路设计注意事项、布局布线要求等内容

qq_16237389的博客 1445

SSM - Springboot - MyBatis-Plus 全栈体系(二十九)

SpringBoot3 整合 MyBatis SpringBoot3 项目打包和运行

柠檬小帽的博客 - 计算机全栈体系 444

ENSP从下载到运行:用虚拟机搭建华为认证实验环境全流程(含USG6000V镜像配置)

本文提供了一份详细的华为ENSP仿真平台从下载、安装到配置USG6000V防火墙镜像的完整指南。内容涵盖前置软件安装、ENSP主程序配置、核心设备镜像导入及虚拟机资源分配策略,旨在帮助网络工程师和学习者快速搭建一个稳定、功能齐全的华为认证实验环境,为备考和模拟企业网络部署打下坚实基础。

weixin_29230865的博客 532

Mybatis3.x与Spring4.x整合

调取存储过程的三个方法: 1.如果是PL/SQL命令窗口就用execute(简写:exec )存储过程名,举个例子: EXEC procedure;--procedure是存储过程名 2.如果是PL/SQL窗口就用 begin 存储过程名 end; begin procedure;--procedure是存储过程名 end; 3.如果是程序中调用就用 call 存储过程名...

上善若泪 1887

用Python实现一个猜密码的程序

我们用Python实现猜密码

sk6584631_sz的博客 1259

手把手排查IOMMU映射故障:从内核日志到硬件寄存器调试全指南

本文详细解析了IOMMU映射故障的排查方法,从内核日志分析到硬件寄存器调试,提供了一套完整的诊断流程。涵盖AMD和Intel平台的特定调试技巧,包括ATS协商失败、DMA传输错误等常见问题的解决方案,并介绍了高级调试工具链的搭建与性能优化策略。

weixin_42666036的博客 353

MyBatis快速入门第七讲——MyBatis整合Spring

本文将手把手教你如何使用MyBatis整合Spring,这儿,我本人使用的MyBatis是MyBatis3.2.7这个版本,Spring是Spring4.1.3这个版本。读者只要学会这两个版本的框架整合之后,其他版本之间的整合就一通百通了。整合思路MyBatis整合Spring的思路如下: SqlSessionFactory对象应该放到spring容器中作为单例存在。 传统Dao的开发方式中,应该从

李阿昀的博客 6325

第9.3章 从CMake基础到自动驾驶实战:构建跨平台C/C++项目的全能指南

《CMake构建实战:项目开发卷》精要指南 本文系统梳理了许宏旭《CMake构建实战》核心内容,涵盖C++构建全流程: 基础构建:详解MSVC/GCC编译器使用、Makefile编写及静态/动态库构建方法 CMake核心:解析语法结构、变量控制、文件操作等关键命令,阐述项目全生命周期管理 实战应用:通过快速排序、手写数字识别项目演示现代CMake实践,特别针对自动驾驶领域给出多传感器融合、SLAM等场景的CMake配置方案 特色价值:本书填补了官方文档实例不足的空白,提供300+代码示例,是掌握工业级C++

行知SLAM 1343

Spring Boot 3.x 整合 MyBatis 代码生成器插件

是一个 Maven 插件,用于生成 MyBatis 的代码(如 Mapper 接口、Mapper XML 文件等),官方文档地址: https://mybatis.org/generator/。它可以根据数据库表自动生成相应的 Java 实体类、Mapper 接口和 XML 映射文件,大大减少了手动编写这些重复且机械化的代码的工作量。

七禾页话的博客 1642

27、超声成像技术与原理全面解析

本博客全面解析了超声成像技术与原理,涵盖声学材料特性、超声成像系统的基本概念与组成、关键技术如多普勒和聚焦技术、超声换能器的设计与原理、图像处理方法、系统校准与质量控制,以及超声成像的应用领域和发展趋势。旨在为医学诊断、工业检测和海洋声学等领域的研究人员和工程师提供深入的技术参考和指导。

z2a3b4c5d的博客 489

【Bug已解决】Request timed out / API Timeout — Claude Code 请求超时解决方案

方案适用场景推荐指数难度方案一:增加超时大任务处理⭐⭐⭐⭐⭐低方案二:切换 SonnetOpus 太慢⭐⭐⭐⭐⭐低方案三:缩小范围大代码库⭐⭐⭐⭐⭐低方案四:优化网络网络延迟高⭐⭐⭐⭐中方案五:减少 MCPMCP 超时⭐⭐⭐中方案六:流式响应长生成任务⭐⭐⭐低根本原因:请求超时最常见原因是请求体过大(35%)和 Opus 模型推理慢(25%),默认 60 秒超时阈值对大型任务不够最佳实践。

一键难忘的博客 5157

Spring整合MyBatis——超详细

(2)将MyBatis的SqlSessionFactory交给Spring IoC容器创建并管理,使用spring-mybatis整合jar包中提供的SqlSessionFactoryBean类代替项目中的MyBatisUtil工具类。映射文件中的select 的id为findUserList,因此接口文件中的方法名就为findUserList,出现红线也不用着急,运行的时候不影响。把上方的mapper接口文件都自动注入到IoC容器中,实现类Bean的名称默认为接口类名的首字母小写。选择自动导入jar包。

web15085415935的博客 1707

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

【Spring 持久层】Spring 与 Mybatis 整合

持久层持久层整合总述Mybatis 开发步骤回顾Mybatis 开发中存在的问题Spring 与 Mybatis 整合思路Spring 与 Mybatis 整合的开发步骤Spring 与 Mybatis 整合的编码搭建开发环境 pom.xmlSpring 配置文件的配置编码Spring 与 Mybatis 整合细节 更多内容请查看笔记目录:【Spring 5.x】学习笔记汇总 持久层整合总述 1、Spring 框架为什么要与持久层技术进行整合? JavaEE开发需要持久层进行数据库的访问操作 JDBC

萌宅鹿的技术小屋 2743

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

OV9734 DATASHEET,完整规格书

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

Spring整合MyBatis详解

企业级开发中,Spring(负责依赖管理和事务控制)与MyBatis(负责持久层操作)的整合是主流方案,本文我将详细讲解Spring整合MyBatis的完整流程,这种整合能充分发挥两者优势:Spring的IoC容器管理MyBatis的核心组件,AOP实现事务控制;MyBatis简化数据库操作。

aa_hdkf_vg的博客 1575

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

图文详解Spring Boot整合MyBatis(附源码)

本文详细介绍了SpringBoot整合MyBatis的开发流程。首先通过SQL脚本创建数据库mybatisdb和员工表,并初始化测试数据。随后创建SpringBoot项目,配置JDK、Maven等开发环境,添加MySQL驱动、Druid连接池和MyBatis依赖。重点讲解了项目结构规范,包括Java代码包划分和resources目录下mapper映射文件的存放规则。最后配置项目启动类,使用@MapperScan注解扫描mapper接口。教程提供了完整的图文操作指引。

谷哥的小弟 1524

Mybatis-Spring | Mybatis与Spring的“整合“

一、配置环境 1. 整合环境需导入的JAR : Spring框架所需JAR Mybatis框架所需JAR MyBatis与Spring整合的中间JAR 数据库驱动JAR包 数据源所需JAR包 (下面的例子中 : 用的不是这个数据源) 2. 编写“配置文件” 和 “.properties文件” ( 只是概述,详细配置在例子中有展示 ) 二、整合开发 : 1. 传统 “Dao方式” 的开发整合 ( 通过操作“XxxDao.java 接口”的方式 :来经过“实体类 -- Spring .....

m0_70720417的博客 1913
上一篇: Mybatis入门实例(三)——使用MyBatis Generator生成DAO
下一篇: B树、B-树、B+树、B*树
NextX工作室
博客等级 码龄18年 21粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值