当前位置: 首页 > article >正文

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_flag
        from sys_user
        where 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 {

    @Autowired
    private SysUserMapper sysUserMapper;

    @Override
    public 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 {

    @Autowired
    private 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.kler.cn/news/353582.html

相关文章:

  • AI智能聊天问答系统源码+AI绘画系统+图文搭建部署教程,文生图图生图,TTS语音识别输入,AI智能体,文档分析
  • 当贝投影双十一战报揭晓:天猫投影品类销量稳居首位
  • Android MQTT调试助手开发
  • Spring Boot学习助手:答疑解惑平台
  • 蛮久没更新自己的状态了,今天趁机更新一下吧
  • 【手写数字识别】Python+CNN卷积神经网络算法+人工智能+深度学习+模型训练
  • 【Python】Conda离线执行命令
  • 架构师之路-学渣到学霸历程-19
  • react hooks中在setState后输出state为啥没有变化,如何解决
  • SpringBoot概览及核心原理
  • 深入解析 Flutter兼容鸿蒙next全体生态的横竖屏适配与多屏协作兼容架构
  • 高效录制 PPT 秘籍:四款卓越录屏软件深度解析
  • 插齿刀的齿数选择不同会有什么影响?
  • 公网IP and 局域网IP
  • 网页复制粘贴助手,Chrome网页复制插件(谷歌浏览器复制插件)
  • servlet基础与环境搭建(idea版)
  • 解决 MySQL 连接数过多导致的 SQLNonTransientConnectionException 问题
  • 25四非网安保研回忆录(北航网安/东南网安/重大计科等)
  • 更加灵活便捷!Fortinet统一SASE解决方案全新增强功能来袭
  • sql数据库命令行操作(数据库的增删改查)