news 2026/4/23 11:53:35

springboot 整合 mybatis

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
springboot 整合 mybatis

文章目录

    • 目录
    • pom.xml
    • application.yml
    • spboot程序入口
      • @MapperScan("com.atguigu.mapper")
    • 实体类 User
    • mapper 接口
    • resources 文件夹下的 mapper.xml
    • service ( @Transactional 就能添加事务)
    • controller
    • 添加AOP

目录

pom.xml

<?xml version="1.0" encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.0.5</version></parent><groupId>com.atguigu</groupId><artifactId>boot-mybatis</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.1</version></dependency><!-- 数据库相关配置启动器 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><!-- druid启动器的依赖 --><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-3-starter</artifactId><version>1.2.20</version></dependency><!-- 驱动类--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.28</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.28</version></dependency><!-- springboot 使用aop --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency></dependencies><!-- SpringBoot应用打包插件 1、在SpringBoot项目中添加 spring-boot-maven-plugin 插件, 是为了:支持将项目打包成可执行的可运行jar包, 2、如果不添加 spring-boot-maven-plugin 插件配置, 使用常规的 java -jar 命令来运行打包后的SpringBoot项目,是无法找到应用程序的入口点, 因此导致无法运行。 --><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

application.yml

# druid连接池spring:datasource:type:com.alibaba.druid.pool.DruidDataSource# 使用druid连接池druid:url:jdbc:mysql:///mybatis-exampleusername:rootpassword:rootdriver-class-name:com.mysql.cj.jdbc.Driver# mabatis的配置,这里彻底舍弃了mybatis-config.xml# 需要指定xxxMapper.xml的位置、settings的配置、别名的配置,等等mybatis:mapper-locations:classpath:/mappers/*.xml# 需要指定xxxMapper.xml的位置(在 Main.java 中通过@MapperScan("com.atguigu.mapper") 指定mapper接口所在的位置)type-aliases-package:com.atguigu.pojoconfiguration:map-underscore-to-camel-case:trueauto-mapping-behavior:fulllog-impl:org.apache.ibatis.logging.slf4j.Slf4jImpl

spboot程序入口

@MapperScan(“com.atguigu.mapper”)

使用 @MapperScan("com.atguigu.mapper") 指定 mapper接口 所在位置

packagecom.atguigu;importorg.mybatis.spring.annotation.MapperScan;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;@MapperScan("com.atguigu.mapper")// mapper接口所在的位置@SpringBootApplicationpublicclassMain{publicstaticvoidmain(String[]args){SpringApplication.run(Main.class,args);}}

实体类 User

packagecom.atguigu.pojo;importlombok.Data;@DatapublicclassUser{privateintempId;privateStringempName;privatedoubleempSalary;}

mapper 接口

packagecom.atguigu.mapper;importcom.atguigu.pojo.User;importjava.util.List;publicinterfaceUserMapper{List<User>queryAllUser();intdelete(inti);}

resources 文件夹下的 mapper.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTO Config 3.0//EN""https://mybatis.org/dtd/mybatis-3-mapper.dtd"><mappernamespace="com.atguigu.mapper.UserMapper"><selectid="queryAllUser"resultType="user">select * from t_emp;</select><deleteid="delete">delete from t_emp where emp_id = #{id}</delete></mapper>

service ( @Transactional 就能添加事务)

packagecom.atguigu.service;importcom.atguigu.mapper.UserMapper;importcom.atguigu.pojo.User;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Service;importorg.springframework.transaction.annotation.Transactional;importjava.util.List;@ServicepublicclassUserService{@AutowiredprivateUserMapperuserMapper;@Transactionalpublicvoiddelete(Integerid){introws=userMapper.delete(id);System.out.println("rows= "+rows);inti=1/0;}publicList<User>findAll(){List<User>list=userMapper.queryAllUser();returnlist;}}

controller

packagecom.atguigu.controller;importcom.atguigu.mapper.UserMapper;importcom.atguigu.pojo.User;importcom.atguigu.service.UserService;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.PathVariable;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RestController;importjava.util.List;@RestController@RequestMapping("user")publicclassUserController{@AutowiredprivateUserServiceuserService;@GetMapping("list")publicList<User>query(){List<User>list=userService.findAll();returnlist;}@GetMapping("delete/{id}")publicStringdeleteFn(@PathVariableIntegerid){userService.delete(id);return"success";}}

添加AOP

packagecom.atguigu.advice;importorg.aspectj.lang.JoinPoint;importorg.aspectj.lang.annotation.Aspect;importorg.aspectj.lang.annotation.Before;importorg.springframework.stereotype.Component;@Component@AspectpublicclassLogAdvice{@Before("execution(* com.atguigu.service.*.*(..))")publicvoidbefore(JoinPointjoinPoint){StringclassName=joinPoint.getSignature().getDeclaringType().getSimpleName();StringmethodName=joinPoint.getSignature().getName();System.out.println("开始执行 - className = "+className+", methodName = "+methodName);}}

浏览器访问http://localhost:8080/user/list
因为添加了 AOP,
所以,就会打印开始执行 - className = UserService, methodName = findAll

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 9:59:45

机器视觉项目中的GRR

机器视觉项目中的GRR 非标自动化领域机器视觉项目的GRR详解与教程 一、GRR的核心定义与工业价值 GRR&#xff08;Gauge Repeatability and Reproducibility&#xff09;即测量系统的重复性与再现性分析&#xff0c;是工业质量管理的核心工具。在非标自动化领域&#xff0c;其…

作者头像 李华
网站建设 2026/4/23 9:59:40

canvas-editor交互设计全解析:从技术架构到用户体验的创新实践

canvas-editor交互设计全解析&#xff1a;从技术架构到用户体验的创新实践 【免费下载链接】canvas-editor rich text editor by canvas/svg 项目地址: https://gitcode.com/gh_mirrors/ca/canvas-editor canvas-editor是一款基于Canvas/SVG技术构建的富文本编辑器&…

作者头像 李华
网站建设 2026/4/23 9:59:40

3步实现社交媒体视频批量下载:全方位内容采集工具的创新应用

3步实现社交媒体视频批量下载&#xff1a;全方位内容采集工具的创新应用 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 在数字化内容爆炸的时代&#xff0c;社交媒体视频已成为信息传播与知识沉淀的重要载体…

作者头像 李华
网站建设 2026/4/23 9:59:42

SRS流媒体服务器Windows部署与优化实践指南

SRS流媒体服务器Windows部署与优化实践指南 【免费下载链接】srs-windows 项目地址: https://gitcode.com/gh_mirrors/sr/srs-windows 理解SRS核心价值&#xff1a;Windows环境下的流媒体解决方案 在企业视频会议中&#xff0c;当延迟超过500ms时&#xff0c;对话将出…

作者头像 李华