一、SpringBoot简介
SpringBoot是一个脚手架,用于快速搭建一个基于Spring的web应用,开箱即用!创建即可开发业务代码,其设计目的是用来简化Spring应用的初始搭建以及开发过程
优点
- 快速构建一个独立的 Spring 应用程序;
- 嵌入的 Tomcat、Jetty 或者 Undertow,无须部署 WAR文件;
- 提供starter POMs来简化Maven配置和减少版本冲突所带来的问题;
- 对Spring和第三方库提供默认配置(约定大于配置),也可修改默认值,简化框架配置;
- 无需配置XML--JavaConfig,无代码生成,开箱即用

二、创建项目

添加项目依赖

SpringBoot项目结构

修改配置文件

新建数据库

创建对应的包

三、创建实体类
新建User类
类级别注解
-
@Entity
- 标记该类为 JPA 实体类,表明它对应数据库中的一张表。
- 只有被
@Entity
标记的类,才能被 JPA 识别并进行数据库操作(如 CRUD)。
-
@Table(name = "tb_user")
- 指定该实体类对应的数据库表名。
- 如果不写这个注解,JPA 会默认使用类名作为表名(此处若省略,会默认对应表
user
,但这里显式指定为tb_user
,更符合实际表名规范)。
属性级别注解
-
@Id
- 标记该字段为表的主键(Primary Key)。
- 每个实体类必须有且仅有一个主键字段。
-
@GeneratedValue(strategy = GenerationType.IDENTITY)
-
指定主键的生成策略:
GenerationType.IDENTITY
表示主键由数据库自动生成(依赖数据库的自增功能,如 MySQL 的AUTO_INCREMENT
)。- 其他常见策略:
AUTO
(JPA 自动选择)、SEQUENCE
(依赖数据库序列)、TABLE
(用一张专门的表维护主键)。
-
-
@Column(name = "字段名")
-
用于指定实体类属性与数据库表中字段的映射关系:
name
属性:指定对应的数据库字段名(如@Column(name = "user_id")
表示该属性对应表中的user_id
字段)。- 如果属性名与数据库字段名一致(忽略大小写),可以省略此注解(但建议显式指定,增强可读性)。
- 还可配置其他属性:如
length
(字段长度)、nullable
(是否允许为 null)等。
-

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

四、编写接口
新建UserController
Restful接口:
在HTTP协议中,有不同的发送请求的方式,分别是GET、POST、PUT、DELETE等,我们如果能让不同的请求方式表示不同的请求类型就可以简化查询
- 查询用户: http://localhost:8090/user/1 GET
- 查询查询多个用户: http://localhost:8090/users GET
- 新增用户: http://localhost:8090/user POST
- 新增修改用户: http://localhost:8090/user PUT
- 修改删除用户:http://localhost:8090/user/1 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测试接口


异常情况:
