SpringBoot+MyBatis+MySQL项目基础搭建

embedded/2024/10/18 12:28:23/

一、新建项目

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.ppmy.cn/embedded/127776.html

相关文章

C#删除dataGridView 选中行

关键在于&#xff1a;从最后一行开始删除。 从前往后删只能删除其中一半&#xff0c;我理解是再remove行的时候dataGridView内部行序列发生了变化&#xff0c;包含在选中行中的特定行会被忽略&#xff0c;从后往前删就可避免这个问题&#xff0c;最后一行的行号影响不到前面的…

OceanBase 从架构到实战应用的技术探索

1. 引言 1.1 OceanBase 简介 OceanBase 是蚂蚁集团自主研发的一款分布式关系型数据库&#xff0c;专为应对金融级别的高并发、高可用性需求而设计。它不仅支持强一致性事务处理&#xff0c;还具备高扩展性&#xff0c;能够应对大规模的数据存储和高频率的查询请求。作为一款新…

截图贴图工具 | PixPin v1.9.0 绿色版

PixPin是一款功能强大且使用简单的截图和贴图工具&#xff0c;它旨在帮助用户提高工作效率。PixPin的主要功能包括截图、贴图、标注、文本识别、长截图和截动图。它允许用户自由选择或自动探测窗口来设定截图范围&#xff0c;精准截取所需内容&#xff0c;并将所截取的图像“贴…

Merlion笔记(二):单变量时间预测

1 简单示例 我们首先导入Merlion的TimeSeries类和M4数据集的数据加载器。然后&#xff0c;我们可以将该数据集中的特定时间序列划分为训练集和测试集。 from merlion.utils import TimeSeries from ts_datasets.forecast import M4time_series, metadata M4(subset"Hou…

数据结构——二叉树(下)

数据结构——二叉树&#xff08;下&#xff09; 文章目录 数据结构——二叉树&#xff08;下&#xff09;一、引言&#xff1a;接上文使用顺序结构的数组存储堆&#xff08;一种二叉树&#xff09;&#xff0c;在这篇文章我们来了解一下堆的应用。 1、堆排序2、TOP-K问题 二、实…

C#学习笔记(二)

第 二 章 命名空间和类、数据类型、变量和代码规范 深水区 一、命名空间 1. 作用与具体表达形式 我们开发一个项目&#xff0c;有时候会有很多的代码&#xff0c;这些代码都分布到不同的类中&#xff0c;也就是类会很多&#xff0c;类多了&#xff0c;就需要划分命名空间来…

一个常见问题:TCP和UDP是否可以使用一个端口

TCP&#xff08;传输控制协议&#xff09;和UDP&#xff08;用户数据报协议&#xff09;做为两种被广泛使用的协议&#xff0c;它们在处理数据时采用不同的机制&#xff0c;那么有一个问题&#xff0c;在同一系统内&#xff0c;TCP和UDP的服务是否可以使用同一个端口呢&#xf…

Python实现主成分分析

主成分分析(PCA)是一种广泛应用于数据分析、机器学习和统计学中的降维技术,尤其适用于高维数据集的处理。在实际工作中,数据维度过高不仅会增加计算复杂度,还可能导致模型的过拟合。因此,合理地进行数据降维能够提升模型的效率和准确性。主成分分析通过线性变换将高维数据…