SpringBoot+MyBatis+MySQL项目基础搭建

一、新建项目

1.1 新建springboot项目

新建项目
在这里插入图片描述
选择SpringBoot,填写基本信息,主要是JDK版本和项目构建方式,此处以JDK17和Maven举例。
在这里插入图片描述

1.2 引入依赖

选择SpringBoot版本,勾选Lombok,Spring Web,MyBatis,MySQL依赖。
在这里插入图片描述

1.3 创建完成

在这里插入图片描述

二、基础配置

2.1 配置application.properties

配置启动端口,数据库信息,MyBatis的基本配置。
在这里插入图片描述

2.2 配置mapper接口的bean扫描

此处以@MapperScan注解扫描整个包的mapper接口,也可以在每个mapper接口上添加@Mapper注解。
在这里插入图片描述

三、功能演示

3.1 数据库准备

CREATE TABLE `sys_user`
(`id`          bigint NOT NULL AUTO_INCREMENT COMMENT 'id',`username`    varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户名',`password`    varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '密码',`nick_name`   varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '昵称',`gender`      int NULL DEFAULT NULL COMMENT '性别:1-男 2-女',`avatar`      varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '头像',`remark`      varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',`del_flag`    tinyint(1) NULL DEFAULT NULL COMMENT '逻辑删除',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户' ROW_FORMAT = Dynamic;

3.2 实体类

package com.qiangesoft.demo.entity;import lombok.Data;/*** 用户** @author qiangesoft* @since 2024-10-14*/
@Data
public class SysUser {/*** id*/private Long id;/*** 用户名*/private String username;/*** 密码*/private String password;/*** 昵称*/private String nickName;/*** 性别:1-男 2-女*/private Integer gender;/*** 头像*/private String avatar;/*** 备注*/private String remark;/*** 逻辑删除*/private Boolean delFlag;}

3.3 Mapper接口及xml

package com.qiangesoft.demo.mapper;import com.qiangesoft.demo.entity.SysUser;/*** 用户** @author qiangesoft* @since 2024-10-14*/
public interface SysUserMapper {/*** 通过主键查询用户* @param id* @return*/SysUser selectByPrimaryKey(Long id);}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qiangesoft.demo.mapper.SysUserMapper"><resultMap id="resultMap" type="com.qiangesoft.demo.entity.SysUser"><result column="id" property="id"/><result column="username" property="username"/><result column="password" property="password"/><result column="nick_name" property="nickName"/><result column="gender" property="gender"/><result column="avatar" property="avatar"/><result column="remark" property="remark"/><result column="del_flag" property="delFlag"/></resultMap><select id="selectByPrimaryKey" resultMap="resultMap">select id,username,password,nick_name,gender,avatar,remark,del_flagfrom sys_userwhere id = #{id}</select></mapper>

3.4 Service接口及实现

package com.qiangesoft.demo.service;import com.qiangesoft.demo.entity.SysUser;/*** 用户** @author qiangesoft* @since 2024-10-14*/
public interface SysUserService {/*** 通过id查询用户* @param id* @return*/SysUser getSysUserById(Long id);}
package com.qiangesoft.demo.service.impl;import com.qiangesoft.demo.entity.SysUser;
import com.qiangesoft.demo.mapper.SysUserMapper;
import com.qiangesoft.demo.service.SysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;/*** 用户** @author qiangesoft* @since 2024-10-14*/
@Service
public class SysUserServiceImpl implements SysUserService {@Autowiredprivate SysUserMapper sysUserMapper;@Overridepublic SysUser getSysUserById(Long id) {return sysUserMapper.selectByPrimaryKey(id);}}

3.5 Controller

package com.qiangesoft.demo.controller;import com.qiangesoft.demo.entity.SysUser;
import com.qiangesoft.demo.service.SysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** 用户** @author qiangesoft* @since 2024-10-14*/
@RequestMapping("/sysUser")
@RestController
public class SysUserController {@Autowiredprivate SysUserService sysUserService;@GetMapping("/{id}")public SysUser findById(@PathVariable Long id) {return sysUserService.getSysUserById(id);}}

3.6 代码结构

在这里插入图片描述

3.7 测试

数据库插入一条数据,然后调用接口查询。
在这里插入图片描述
在这里插入图片描述

四、源码下载

百度网盘:https://pan.baidu.com/s/1zRoU4e7FNpTbzdmbX6lf0w
提取码:1234

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

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

相关文章

Keepalived:高可用性的守护神

Keepalived:高可用性的守护神 在现代企业IT系统中,高可用性是确保业务连续性和服务质量的关键要素。系统面对硬件故障、软件错误、人为失误或自然灾害时,依然能保持正常运行,这样的能力对于企业来说至关重要。为此,业界开发了一系列高可用性解决方案,其中Keepalived以其…

数据结构与算法:高级数据结构与实际应用

目录 14.1 跳表 14.2 Trie树 14.3 B树与 B树 14.4 其他高级数据结构 总结 数据结构与算法&#xff1a;高级数据结构与实际应用 本章将探讨一些高级数据结构&#xff0c;这些数据结构在提高数据存取效率和解决复杂问题上起到重要作用。这些高级数据结构包括跳表&#xff0…

【2022统考真题】计算时间复杂度

目录 一、题目描述 二、思路分析 三、易错提醒 四、同级和嵌套的关系 一、题目描述 下列程序段的时间复杂度是&#xff08;&#xff09; int sum 0; for (int i 1; i < n; i * 2) for (int j 0; j < i; j) sum; A. O(logn) B. O(n) C. O(nlogn) D…

【工欲善其事】巧用 PowerShell 自动清除复制 PDF 文本时夹杂的换行符号

文章目录 巧用 PowerShell 自动清除复制 PDF 文本时夹杂的换行符号1 问题描述2 解决方案3 具体步骤4 效果测试5 小结与复盘 巧用 PowerShell 自动清除复制 PDF 文本时夹杂的换行符号 1 问题描述 不知各位是否也为复制过来的文本中夹杂的回车换行符抓狂过&#xff1f;就是在复…

基于小波图像去噪的MATLAB实现

基于小波图像去噪的MATLAB实现 一、 论文背景 数字图像处理(Digital Image Processing&#xff0c;DIP)是指用计算机辅助技术对图像信号进行处理的过程。数字图像处理最早出现于 20世纪50年代&#xff0c;随着过去几十年来计算机、网络技术和通信的快速发展&#xff0c;为信号…

作业2-线性回归的Matlab代码实现

一、前言 相关配置&#xff1a;Matlab 2020a&#xff08;版本的影响应该不大&#xff0c;.m代码基本都能运行&#xff0c;个人感觉就是Simulink对版本的要求高一些&#xff09; 二、任务描述 基于近两节课的理论推导&#xff0c;用代码实现线性回归&#xff0c;并对预测结果进…

基于SpringBoot+Vue+uniapp微信小程序的澡堂预订的微信小程序的详细设计和实现

项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念&#xff0c;提供了一套默认的配置&#xff0c;让开发者可以更专注于业务逻辑而不是配置文件。Spring Boot 通过自动化配置和约…

目标检测系统【环境详细配置过程】(CPU版本)

&#xff08;如果你使用的是笔记本电脑&#xff0c;没有比较好的GPU&#xff0c;可以配置CPU运行环境&#xff09; 链接&#xff1a;上百种【基于YOLOv8/v10/v11的目标检测系统】目录&#xff08;pythonpyside6界面系统源码可训练的数据集也完成的训练模型&#xff09; 1.安装…

MySQL中什么情况下类型转换会导致索引失效

文章目录 1. 问题引入2. 准备工作3. 案例分析3.1 正常情况3.2 发生了隐式类型转换的情况 4. MySQL隐式类型转换的规则4.1 案例引入4.2 MySQL 中隐式类型转换的规则4.3 验证 MySQL 隐式类型转换的规则 5. 总结 如果对 MySQL 索引不了解&#xff0c;可以看一下我的另一篇博文&…

如何在 JavaScript 项目中限制Node.js版本

前言 在现代JavaScript开发中&#xff0c;Node.js扮演了一个非常重要的角色。不同版本的Node.js可能会带来不同的特性和行为&#xff0c;因此在项目中限制Node版本是一个很关键的步骤。 本文将通过通俗易懂的方式&#xff0c;教你如何在JavaScript项目中限制Node.js的版本。 …

CTF(七)

导言&#xff1a; 本文主要讲述在CTF竞赛中&#xff0c;Misc&#xff08;杂项&#xff09;题目中的CatchCat。 靶场链接&#xff1a;攻防世界 (xctf.org.cn) 一&#xff0c;分析题目。 下载并解压附件&#xff1a; CatchCat.txt文件内容为&#xff1a; 发现是坐标。 另一个…

Spring Boot在线考试系统:JavaWeb技术的最佳实践

摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了基于JavaWeb技术的在线考试系统设计与实现的开发全过程。通过分析基于Java Web技术的在线考试系统设计与实现管理的不足&#xff0c;创建了一个计算机管理基于Ja…

Linux——应用软件的生命周期

功能开发测试&#xff1a; 功能性测试 对应开发框架的测试用例代码的漏洞扫描 Web服务器版本应用开发语言的依赖关系和版本信息是否会造成类似内存泄露等影响系统性能的问题压力测试应用的部署 获取应用代码以及应用静态文件的代码包将安装包中的文件按照服务器配置的架构&…

表贴式永磁同步电机无感控制-基于滑膜观测器SMO法

导读:在全速域范围内,一般的永磁同步电机无感控制要分为低速区域和高速区域两个部分。原因在于常规的方法是利用模型建立反电动势观测器来求解转子位置信息,但其只适合在中高速区域。本文介绍一种基于滑膜观测器SMO法+PLL的方法。 需要文章中的仿真,关注微信公众号:浅谈电…

python机器人编程——用python调用API控制wifi小车的实例程序

目录 一、前言二、一个客户端的简单实现2.1 首先定义一个类及属性2.2 其次定义连接方法2.3 定义一些回调函数2.4 定义发送小车指令方法2.5 定义一个正常关闭方法 三、python编程控制小车的demo实现四、小结PS.扩展阅读ps1.六自由度机器人相关文章资源ps2.四轴机器相关文章资源p…

【大数据技术基础 | 实验四】HDFS实验:读写HDFS文件

文章目录 一、实验目的二、实验要求三、实验原理&#xff08;一&#xff09;Java Classpath&#xff08;二&#xff09;Eclipse Hadoop插件 四、实验环境五、实验内容和步骤&#xff08;一&#xff09;配置master服务器classpath&#xff08;二&#xff09;使用master服务器编写…

git修改默认分支

你可以通过以下步骤修改 Git 仓库的默认分支&#xff1a; 1. 修改现有仓库的默认分支&#xff1a; 如果你已经有一个 Git 仓库&#xff0c;想要更改默认分支的名字&#xff08;例如从 master 改为 main&#xff09;&#xff1a; # 重命名当前分支为 main git branch -m mast…

C. Klee in Solitary Confinement(2021 南京 ICPC)

C. Klee in Solitary Confinement 观察题目&#xff0c;发现暴力枚举区间不可行。 考虑一个经典套路&#xff1a;独立处理每个数字&#xff08;考虑一个数字作为众数的时候&#xff0c;只有x和x-k会对答案造成影响&#xff0c;其他是不用考虑的&#xff09; 于是&#xff0c;考…

JVM学习总结:字节码篇

本文是学习尚硅谷宋红康老师主讲的 尚硅谷JVM精讲与GC调优教程 的总结 &#xff0c;部分内容也参考了 JavaGuide 网站&#xff08;文末有链接&#xff09; JVM 概述 Oracle JDK 与 OpenJDK 是什么关系&#xff1f; 2006 年 SUN 公司将 Java 开源&#xff0c;也就有了 OpenJDK。…

Games202作业5(完结)

单帧降噪 也就是针对图像空间进行降噪 也就是我们需要在像素&#xff08;i,j&#xff09;的四周进行采样&#xff0c;然后将采样的权重加到一起&#xff0c;然后所有的权重和像素的乘积也加到一起&#xff0c;然后相除&#xff0c;得到最终滤波后的(i,j)像素期望的结果。 Buf…