springboot整合mybatisPlus超级详细

news2024/12/24 8:37:19

springboot整合mybatis-plus超级详细

  • 一、环境
  • 二、springboot整合myBatisPlus
    • 2.1新建
    • 2.2 添加Mybatis-plus和mysql依赖
    • 2.3 修改配置文件
    • 2.4 新建包和文件
    • 2.5 新建表
    • 2.6 创建实体类
    • 2.7 创建Mapper接口
    • 2.8 创建Service接口
    • 2.9 创建Service实现类
    • 2.10 增删改查

MyBatis-Plus,如其名所示,是MyBatis的一个功能增强工具。它旨在对MyBatis的核心功能进行拓展,而不会对其原有结构或行为做出任何修改。

一、环境

系统:windows 11
软件:IntelliJ IDEA 2022.2.3
maven:maven3.8.6
JDK:1.8.0_351
springboot:3.2.2
myBatisPlus:3.3.1

二、springboot整合myBatisPlus

2.1新建

设置项目名、groupID、artfactid、version
在这里插入图片描述

设置选择springboot版本和基础依赖
在这里插入图片描述

2.2 添加Mybatis-plus和mysql依赖

在pom.xml中引入依赖

<!--Mybatis-plus的依赖-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.3.1</version>
</dependency>

<!--mysql的依赖-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.31</version>
</dependency>

2.3 修改配置文件

application.properties改为application.yml

# 端口号8080
server:
  port: 8080

# 数据库名:mysql,用户名root,密码123456
spring:
  datasource:
    username: root
    password: 123456
    url: jdbc:mysql://192.168.17.128:3306/test?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
    driver-class-name: com.mysql.cj.jdbc.Driver

# mybatis-plus配置
mybatis-plus:
  # xml文件位置
  mapper-locations: classpath:mapper/*.xml

2.4 新建包和文件

/src/main/java/com.gsj.springbootmp下新建包
service,controller,mapper,entity

/src/main/resouces下设置mapping文件夹

如图:
在这里插入图片描述

2.5 新建表

新建数据库测试表:

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) NOT NULL DEFAULT '' COMMENT '名称',
  `age` int(11) NOT NULL COMMENT '年龄',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB COMMENT='用户表';

2.6 创建实体类

com/gsj/springbootmp/entity/User.java

package com.gsj.springbootmp.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.NoArgsConstructor;


@Data
@NoArgsConstructor
@TableName("user")
public class User {

    @TableId(type = IdType.AUTO)
    private Integer id;

    @TableField("name")
    private String name;

    @TableField("age")
    private Integer age;

}

2.7 创建Mapper接口

com/gsj/springbootmp/mapper/UserMapper.java

package com.gsj.springbootmp.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gsj.springbootmp.entity.User;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface UserMapper extends BaseMapper<User> {

}

2.8 创建Service接口

com/gsj/springbootmp/service/UserService.java

package com.gsj.springbootmp.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.gsj.springbootmp.entity.User;

public interface UserService extends IService<User> {
}

2.9 创建Service实现类

com/gsj/springbootmp/service/impl/UserServiceImpl.java

package com.gsj.springbootmp.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gsj.springbootmp.entity.User;
import com.gsj.springbootmp.mapper.UserMapper;
import com.gsj.springbootmp.service.UserService;
import org.springframework.stereotype.Service;

@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}

2.10 增删改查

com/gsj/springbootmp/controller/UserController.java

package com.gsj.springbootmp.controller;

import com.gsj.springbootmp.entity.User;
import com.gsj.springbootmp.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("user")
public class UserController {

    @Autowired
    private UserService userService;

    @RequestMapping("list")
    public List<User> list(){
        return userService.list();
    }

    @RequestMapping("getUser/{id}")
    public User getUser(@PathVariable String id){
        return userService.getById(id);
    }

    /**
     * 插入学生信息
     * @param User
     */
    @RequestMapping("/insert")
    public void insertInfo(User User){

        User info=new User();
        info.setName(User.getName());
        info.setAge(User.getAge());
        userService.save(info);
    }

    /**
     * 根据id更新学生表信息
     * @param User
     */
    @RequestMapping("/update")
    public void updateById(User User){

        User info=new User();
        info.setId(User.getId());
        info.setName(User.getName());
        info.setAge(User.getAge());
        userService.updateById(info);
    }

    /**
     * 根据id删除学生信息
     * @param id
     */
    @RequestMapping("/delete")
    public void deleteById(String id){
        userService.removeById(id);
    }
}

我们可通过启动应用程序进行测试,以验证其能否顺利运作并准确从数据库提取数据。若一切正常,则表明已成功运用Spring Boot与MyBatis-Plus进行了有效集成。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1460921.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【前端】前端三要素之DOM

写在前面&#xff1a;本文仅包含DOM内容&#xff0c;JavaScript传送门在这里&#xff0c;BOM传送门在这里。 本文内容是假期中刷的黑马Pink老师视频&#xff08;十分感谢Pink老师&#xff09;&#xff0c;原文保存在个人的GitLab中&#xff0c;如果需要写的网页内容信息等可以评…

Springboot项目的run debug都是灰色解决方法

IDEA下新建SpringBoot项目后&#xff0c;问题显示如下&#xff1a; 解决方法如下&#xff1a; 这个问题是由于缺少Configuration构建器的原因&#xff0c;因此&#xff1a; 1.点击Add Configuration 添加Spring Boot构建器&#xff0c;启动类选择好&#xff0c;点击确认即可&a…

2024新版Java高频面试题+Java八股文面试真题

Java面试题_2024新版Java高频面试题Java八股文面试真题 Java高频面试专题视频课程&#xff0c;瓤括了Java生态下的主流技术面试题&#xff0c;课程特色&#xff1a; 1、全面&#xff0c;jvm、并发编程、mysql、rabbitmq、spring、mybatis、redis、分布式、微服务、数据结构等等…

在UE5中使用OverlayMaterial制作多材质效果

UE5.1中新增了OverlayMaterial&#xff0c;可以让物体套用2个材质球效果&#xff0c;如A材质球为正常材质内容&#xff0c;B材质球为菲涅尔&#xff0c;或是B材质球是法线外拓描边等&#xff0c;该功能类似Unity的多pass效果&#xff0c;方便了日常使用。 下面就讲将怎么用Ove…

(十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用

前言 本节内容我们主要介绍在Jenkins流水线中&#xff0c;其构建过程中的一些构建策略的配置&#xff0c;例如通过远程http构建、定时任务构建、轮询SCM构建、参数化构建、Git hook钩子触发构建等&#xff0c;可根据不同的需求完成不同构建策略的配置。 正文 Throttle build…

TypeScript on the way:学习TypeScript

个人博客:Sekyoro的博客小屋 个人网站:Proanimer的个人网站 早该学学了. 之前写过Python的类型系统,如果对于写C,Java,C#等这类语言来说,typing根本不成问题,所以理解TypeScript也不是问题. 特殊的类型 any,unknown与never any,unknown是"顶层类型",never是&quo…

Docker启动后怎样运行jar包文件

启动容器&#xff1a; docker run -it your-image-name /bin/bash 我们用ls查看文件&#xff0c;在我们进入容器时并没有看到jar包&#xff0c;我们需要将jar包复制到Docker容器中: docker cp /PATH/xxx.jar containerName:/tmp/workdir/xxx.jar 复制过后就能看到在对应路径…

USB-C 音频转接器工作原理介绍

Type-C音频转接器&#xff1a;引领未来视听新纪元 随着科技浪潮的推进&#xff0c;Type-C接口已逐渐成为电子设备的主流选择。其正反随意插、高速传输和强大功能等独特优势&#xff0c;使得Type-C接口在日常生活中的应用越来越广泛。而Type-C音频转接器&#xff0c;作为连接Ty…

第15届机械与航空航天工程国际会议 (ICMAE 2024) 即将召开!

2024年第15届机械与航空航天工程国际会议&#xff08;ICMAE 2024&#xff09;将于2024年7月17 日至20日在克罗地亚萨格勒布举行。近几十年来&#xff0c;机械与航空航天工程在机器人、汽车系统、工业自动化、太空探索等重点领域取得了显著进展。本次会议将汇聚行业内的专家、学…

牛刀小试 - C++ 学生信息管理系统

参考文档&#xff1a; C实现&#xff1a;学生管理系统&#xff08;详细解析&#xff09; 关于switch中的default里面的break是否可以省略这件事 需求要求&#xff1a; &#xff08;1&#xff09;增加记录 &#xff08;2&#xff09;查找记录 &#xff08;3&#xff09;删除…

linux ext3/ext4文件系统(part2 jbd2)

概述 jbd2&#xff08;journal block device 2&#xff09;是为块存储设计的 wal 机制&#xff0c;它为要写设备的buffer绑定了一个journal_head&#xff0c;这个journal_head与一个transaction绑定&#xff0c;随着事务状态的转移&#xff08;运行&#xff0c;生成日志&#…

智能工厂建设模式及解决方案供应商---万界星空科技

今天就聊聊企业智能工厂的打造&#xff0c;企业想实现数字化转型建立智能工厂&#xff0c;就需要先建设数字化车间&#xff0c;可以说数字化车间是建设智能工厂的重要一环&#xff0c;智能工厂的基础是数字化车间。 一、智能工厂特征&#xff1a; 1&#xff0c;智能系统集成…

【前端】前端三要素之BOM

写在前面&#xff1a;本文仅包含BOM内容&#xff0c;JavaScript传送门在这里&#xff0c;DOM传送门在这里。 本文内容是假期中刷的黑马Pink老师视频&#xff08;十分感谢Pink老师&#xff09;&#xff0c;原文保存在个人的GitLab中&#xff0c;如果需要写的网页内容信息等可以评…

如何更换过期的SSL证书?

SSL证书是保护网站安全的重要组成部分&#xff0c;它能在客户端和服务器之间建立数据传输加密通道&#xff0c;防止数据在传输过程中被泄露、劫持和窃听。但SSL证书也有有效期限&#xff0c;当SSL证书到期时&#xff0c;您需要及时更换它&#xff0c;以确保网站的安全性和可信度…

Spring相关注解

文章目录 Spring注解Bean1、Bean 概述2、Bean 的声明1&#xff09;搭配 Configuration2&#xff09;搭配 Component3&#xff09;搭配 ApplicationContext 3、Bean 的注入1&#xff09;NO&#xff08;主要关注这个&#xff09;【1】同一配置类【2】不同配置类 2&#xff09;BY_…

信奥一本通:1085:球弹跳高度的计算

这个题的点在于注意他求得是一共经过的米数&#xff0c;也就是下降起跳都算在里面&#xff0c;例如第一次下降20再起跳15就是一次循环的高度 #include <iostream> # include <iomanip> using namespace std; double h,c1,s; int main(){cin >> h;s h;while…

1902_野火FreeRTOS教程内核在STM32中用到的2个中断PENDSV和SYSTICK

1902_野火FreeRTOS教程内核在STM32中用到的2个中断PENDSV和SYSTICK 全部学习汇总&#xff1a; g_FreeRTOS: FreeRTOS学习笔记 (gitee.com) 上面是涉及到的源代码&#xff0c;而这次需要分析的就是78、79行的两个中断。首先&#xff0c;需要确认NVIC_SYSPRI2寄存器的作用。 进一…

MySQL篇—事务和隔离级别介绍

☘️博主介绍☘️&#xff1a; ✨又是一天没白过&#xff0c;我是奈斯&#xff0c;DBA一名✨ ✌✌️擅长Oracle、MySQL、SQLserver、Linux&#xff0c;也在积极的扩展IT方向的其他知识面✌✌️ ❣️❣️❣️大佬们都喜欢静静的看文章&#xff0c;并且也会默默的点赞收藏加关注❣…

程序员们的“不关机”现象:一种技术文化还是不良习惯?

文章目录 程序员们的“不关机”现象&#xff1a;一种技术文化还是不良习惯&#xff1f;引言程序员为何不爱关机&#xff1f;开发环境的冷启动成本持续集成与持续部署远程办公与全球协作运行中的服务与调试环境随时待命的紧急响应 长期开机是否会对硬件产生损害&#xff1f;最后…

Word第一课

文章目录 1. 文件格式1.1 如何显示文件扩展名1.2 Word文档格式的演变1.3 常见的Word文档格式 3. 文档属性理解文档属性查看文档属性 4. 显示比例方式一&#xff1a; 手动调整方式二&#xff1a; 自动调整 5. 视图、窗口视图 1. 文件格式 1.1 如何显示文件扩展名 文档格式指的…