1小时快速上手SpringBoot,熟练掌握CRUD

一、SpringBoot简介

SpringBoot是一个脚手架,用于快速搭建一个基于Spring的web应用,开箱即用!创建即可开发业务代码,其设计目的是用来简化Spring应用的初始搭建以及开发过程

优点

  • 快速构建一个独立的 Spring 应用程序;
  • 嵌入的 Tomcat、Jetty 或者 Undertow,无须部署 WAR文件;
  • 提供starter POMs来简化Maven配置和减少版本冲突所带来的问题;
  • 对Spring和第三方库提供默认配置(约定大于配置),也可修改默认值,简化框架配置;
  • 无需配置XML--JavaConfig,无代码生成,开箱即用

二、创建项目

添加项目依赖

SpringBoot项目结构

修改配置文件

新建数据库

创建对应的包

三、创建实体类

新建User类

类级别注解

  1. @Entity

    • 标记该类为 JPA 实体类,表明它对应数据库中的一张表。
    • 只有被 @Entity 标记的类,才能被 JPA 识别并进行数据库操作(如 CRUD)。
  2. @Table(name = "tb_user")

    • 指定该实体类对应的数据库表名。
    • 如果不写这个注解,JPA 会默认使用类名作为表名(此处若省略,会默认对应表 user,但这里显式指定为 tb_user,更符合实际表名规范)。

属性级别注解

  1. @Id

    • 标记该字段为表的主键(Primary Key)。
    • 每个实体类必须有且仅有一个主键字段。
  2. @GeneratedValue(strategy = GenerationType.IDENTITY)

    • 指定主键的生成策略:

      • GenerationType.IDENTITY 表示主键由数据库自动生成(依赖数据库的自增功能,如 MySQL 的 AUTO_INCREMENT)。
      • 其他常见策略:AUTO(JPA 自动选择)、SEQUENCE(依赖数据库序列)、TABLE(用一张专门的表维护主键)。
  3. @Column(name = "字段名")

    • 用于指定实体类属性与数据库表中字段的映射关系:

      • name 属性:指定对应的数据库字段名(如 @Column(name = "user_id") 表示该属性对应表中的 user_id 字段)。
      • 如果属性名与数据库字段名一致(忽略大小写),可以省略此注解(但建议显式指定,增强可读性)。
      • 还可配置其他属性:如 length(字段长度)、nullable(是否允许为 null)等。

启动项目,为我们自动创建数据库表

四、编写接口

新建UserController

Restful接口:

在HTTP协议中,有不同的发送请求的方式,分别是GET、POST、PUT、DELETE等,我们如果能让不同的请求方式表示不同的请求类型就可以简化查询

五、编写业务逻辑类

新建UserService类,IUserService接口

java 复制代码
package com.kehanzhu.crud_test.service;

import com.kehanzhu.crud_test.pojo.User;
import com.kehanzhu.crud_test.pojo.dto.UserDto;

public interface IUserService {
    /**
     * 插入用户
     *
     * @param user 参数
     * @return user对象
     */
    User add(UserDto user);
}
java 复制代码
package com.kehanzhu.crud_test.service;

import com.kehanzhu.crud_test.pojo.User;
import com.kehanzhu.crud_test.pojo.dto.UserDto;
import com.kehanzhu.crud_test.repository.UserRepository;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service //spring的bean
public class UserService implements IUserService {

    @Autowired
    private UserRepository userRepository;

    @Override
    public User add(UserDto user) {
        User userPojo = new User();
        BeanUtils.copyProperties(user, userPojo);
        return userRepository.save(userPojo);
    }
}

六、编写数据访问类

新建UserRepository接口

java 复制代码
package com.kehanzhu.crud_test.repository;

import com.kehanzhu.crud_test.pojo.User;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface UserRepository extends CrudRepository<User, Integer> {
}

七、测试接口

使用postman测试接口

异常情况:

相关推荐
MrSun的博客2 小时前
数据源切换之道
后端
豆浆Whisky2 小时前
Go interface性能调优指南:避免常见陷阱的实用技巧|Go语言进阶(10)
后端·go
IT_陈寒3 小时前
「Redis性能翻倍的5个核心优化策略:从数据结构选择到持久化配置全解析」
前端·人工智能·后端
风象南4 小时前
SpringBoot安全进阶:利用门限算法加固密钥与敏感配置
后端
数据知道5 小时前
Go语言:用Go操作SQLite详解
开发语言·后端·golang·sqlite·go语言
你的人类朋友11 小时前
【Node】单线程的Node.js为什么可以实现多线程?
前端·后端·node.js
iナナ12 小时前
Spring Web MVC入门
java·前端·网络·后端·spring·mvc
CoderYanger12 小时前
优选算法-双指针:2.复写零
java·后端·算法·leetcode·职场和发展
数据知道14 小时前
Go基础:用Go语言操作MongoDB详解
服务器·开发语言·数据库·后端·mongodb·golang·go语言