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测试接口

异常情况:

相关推荐
码农小卡拉2 分钟前
深入解析Spring Boot文件加载顺序与加载方式
java·数据库·spring boot
Dragon Wu10 分钟前
Spring Security Oauth2.1 授权码模式实现前后端分离的方案
java·spring boot·后端·spring cloud·springboot·springcloud
一个有梦有戏的人31 分钟前
Python3基础:进阶基础,筑牢编程底层能力
后端·python
爬山算法1 小时前
Hibernate(88)如何在负载测试中使用Hibernate?
java·后端·hibernate
独断万古他化1 小时前
【Spring 原理】Bean 的作用域与生命周期
java·后端·spring
我爱加班、、1 小时前
Websocket能携带token过去后端吗
前端·后端·websocket
一 乐2 小时前
校园二手交易|基于springboot + vue校园二手交易系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端
80530单词突击赢2 小时前
SpringBoot整合SpringMVC全解析
java·spring boot·后端
vx1_Biye_Design2 小时前
基于Spring Boot+Vue的学生管理系统设计与实现-计算机毕业设计源码46223
java·vue.js·spring boot·spring·eclipse·tomcat·maven
vx_Biye_Design2 小时前
基于Spring Boot+vue的湖北旅游景点门票预约平台的设计--毕设附源码29593
java·vue.js·spring boot·spring cloud·servlet·eclipse·课程设计