news 2026/5/14 7:04:25

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/5/14 7:04:05

AI赋能的众包测试任务分配体系演进

传统众包测试面临的核心矛盾在于&#xff1a;海量测试者资源与任务匹配精度的失衡。据统计&#xff0c;未优化分配机制的众包平台中&#xff0c;30%高复杂度任务由能力不匹配的测试者承接&#xff0c;导致缺陷漏检率高达22%。而AI驱动的任务分配系统通过三维能力建模&#xff0…

作者头像 李华
网站建设 2026/5/14 7:00:20

如何实现Unity游戏实时翻译?XUnity.AutoTranslator技术方案全解析

如何实现Unity游戏实时翻译&#xff1f;XUnity.AutoTranslator技术方案全解析 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 在全球化游戏市场中&#xff0c;语言障碍常常成为玩家体验海外优质游戏的主要…

作者头像 李华
网站建设 2026/5/14 7:00:32

如何通过HsMod打造个性化炉石传说游戏体验:从入门到精通

如何通过HsMod打造个性化炉石传说游戏体验&#xff1a;从入门到精通 【免费下载链接】HsMod Hearthstone Modify Based on BepInEx 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod HsMod作为基于BepInEx框架开发的炉石传说功能扩展工具&#xff0c;为玩家提供…

作者头像 李华
网站建设 2026/5/11 5:48:05

故障排除ComfyUI工作流异常:从异常识别到根源修复的实战手册

故障排除ComfyUI工作流异常&#xff1a;从异常识别到根源修复的实战手册 【免费下载链接】ComfyUI-Impact-Pack 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-Impact-Pack ComfyUI工作流异常修复是创作者在使用Impact-Pack扩展过程中必备的技能。本文将以技术…

作者头像 李华
网站建设 2026/4/30 20:03:23

好写作AI:写作拖延症晚期?三招让你秒入“心流高速路”

别装了&#xff0c;我知道你此刻的状态&#xff1a; 文档打开半小时&#xff0c;标题写了又删——就等灵感那“临门一脚”&#xff0c;结果灵感比老板的加薪承诺还遥远。 刷会手机“找灵感”吧&#xff0c;结果从微博吃瓜到抖音&#xff0c;两小时过去了&#xff0c;字数还是零…

作者头像 李华