springboot 如何编写增删改查后端接口,小白极速入门,附完整代码

构建项目及初始配置

创建项目

在这里插入图片描述

在这里插入图片描述

配置yml配置文件

tips: 默认是application.properties,自己再新建一个application.yml即可

server:
  port: 8088 #自己喜欢哪个端口用哪个

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/springboot?serverTimezone=GMT%2b8 #改成自己的数据库
    username: root # 改成自己的mysql用户
    password: root # 改成自己的密码
mybatis:
  mapper-locations: classpath:mapper/*.xml

创建不同的包 controller,service,mapper,entity…

在这里插入图片描述

tips:注意包的位置,别放错了。创建包:右键点击new package即可。

  1. controller 对应控制器,用于对接接口的映射
  2. service 用于业务处理(当然目前的这个小demo非常简单,只作用于一个传递的功能)
  3. mapper 就是一些增删改查的接口
  4. entity 实体类,数据库中的每一张表对应于一个实体类(当然,可以有更详细的vo,bo之类的,只不过当前的demo比较简单,就一个数据库对应一个实体类啦)
  5. resource/mapper 用于编写实际sql的xml的地方

编写代码

编写实体类 User

在包entity下,创建User类,然后提供与数据库对应的字段作为属性,我这边使用lombok提供的注解(对应的getter和setter以及有参无参构造器和toString方法),其实就是传统的javabean。

在这里插入图片描述

package com.robin.springbootscaffold.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class User {
    private int id;
    private String name;
    private String password;
    private String sex;
    private int age;
    private String phone;
}

编写mapper接口

这里因为是入门嘛,所以就直接对应一张表的crud,增删改查,以及一个列表查询,然后左侧的小鸟是装了一个mybatis的插件(它可以帮助提示,你的每个mapper接口和mapper.xml的映射关系)。

在这里插入图片描述

package com.robin.springbootscaffold.mapper;

import com.robin.springbootscaffold.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface UserMapper {

    List<User> getAllUsers();

    int addUser(User user);

    int updUserById(User user);

    User findUserById(@Param("id") int id);

    int delUserById(@Param("id") int id);
}

编写mapper.xml(Resource目录下)

在这里插入图片描述

这里需要注意的是

  1. namespace命名空间,要指定你的mapper接口的完整路径
  2. 增删改查分别对应于四个标签 insert delete update select
  3. 每个sql对应于你的mapper接口中的方法,我们需要通过id去指定你当前的sql是哪个接口方法的
  4. #{xxx} 这是mybatis提供的一种占位符,就是之前sql中学的 ? 占位符
  5. resultType 结果类型,如果是实体类的话也需要通过指定完整的类路径
<?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.robin.springbootscaffold.mapper.UserMapper">

  <!--  public List<User> getAllUsers();  -->
  <select id="getAllUsers" resultType="com.robin.springbootscaffold.entity.User">
    select * from user
  </select>

  <!-- 添加用户方法 用户id为自增主键,所以这里我们不需要传入id值  -->
  <insert id="addUser" >
    insert into user
    (name,password,sex,age,phone)
    values (#{name},#{password},#{sex},#{age},#{phone})
  </insert>

  <!-- 根据用户id进行更新操作  -->
  <update id="updUserById">
    update user
    set name = #{name},
    sex = #{sex},
    phone = #{phone},
    age = #{age}
    where id = #{id}
  </update>

  <!--  根据用户id查询用户详情  -->
  <select id="findUserById" resultType="com.robin.springbootscaffold.entity.User">
    select * from user where id = #{id}
  </select>


  <!--  根据id删除用户  -->
  <delete id="delUserById">
    delete from user where id = #{id}
  </delete>
</mapper>

编写service

在这里插入图片描述

每个方法基本是见名知意,我就不一一注释了。

package com.robin.springbootscaffold.service;

import com.robin.springbootscaffold.entity.User;
import com.robin.springbootscaffold.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserService {

    @Autowired
    private UserMapper userMapper;

    public List<User> getAllUsers(){
        return  userMapper.getAllUsers();
    }


    public int addUser(User user){
        return userMapper.addUser(user);
    }

    public int updUserById(User user){
        return userMapper.updUserById(user);
    }

    public User findUserById(int id){
        return userMapper.findUserById(id);
    }

    public int delUserById(int id){
        return userMapper.delUserById(id);
    }
}

编写controller

在这里插入图片描述

package com.robin.springbootscaffold.controller;

import com.robin.springbootscaffold.entity.User;
import com.robin.springbootscaffold.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/list")
    public List<User> getAllUsers(){
        return  userService.getAllUsers();
    }

    @PostMapping("/add")
    public int addUser(@RequestBody User user){
        return userService.addUser(user);
    }

    @PutMapping("/upd")
    public int updUserById(@RequestBody User user){
        return userService.updUserById(user);
    }

    @GetMapping("/find/{id}")
    public User findUserById(@PathVariable("id") int id){
        return userService.findUserById(id);
    }

    @DeleteMapping("/delete/{id}")
    public int delUserById(@PathVariable("id") int id){
        return userService.delUserById(id);
    }
}

首先解释一下 @RestController 这个注解,可以将你的每个接口的返回值转换为一个json,@RequestMapping 用于指定接口的映射规则,这个的话,接着往下看就明白啦。

然后 @GetMapping @DeleteMapping @PutMapping @PostMapping 都是 @RequestMapping 的衍生注解,分别对应不同的请求方式,然后有一些细节是不同的,这里不做过多的描述。

如果 @RequestBody @PathVariable 这两个注解不懂的话,可以看我的这篇文章 springbootWeb常用注解使用

接口测试,使用postman

启动项目,然后使用postman测试接口(如果没使用过postman的话,去了解一下)

注意观察每个接口的请求方式,以及请求的参数和请求体

查询用户列表

在这里插入图片描述

新增用户

因为我们controller中使用的是@RequestBody注解 ,所以使用postman发送请求的话需要选择body->row,然后以json的数据格式发送。

在这里插入图片描述

查询单个用户信息

在这里插入图片描述

路径变量,就是在/后面多加一个变量,用于保存一些信息,然后使用@PathVarible注解就可以获取到对应的变量的值。

修改用户信息

在这里插入图片描述

删除用户信息

在这里插入图片描述

SQL代码

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user`  (
  `id` int(0) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '姓名',
  `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '密码',
  `sex` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '性别',
  `age` int(0) NULL DEFAULT NULL COMMENT '年龄',
  `phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '电话',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户信息表' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (1, '张三', '123456', '男', 25, '18888889999');
INSERT INTO `user` VALUES (3, 'robin', '123456', '男', 22, '14424567789');

SET FOREIGN_KEY_CHECKS = 1;

数据库比较简单,考虑到小白,我直接贴sql代码了(数据库名为springboot,表名为user)。

在这里插入图片描述

完整代码zip

这个demo的完整代码,我已经上传到了百度网盘需要的直接下载就行

链接: https://pan.baidu.com/s/1gghcUrajoMDpAQbEnfOOuw 提取码: 41xs

小结

在这里插入图片描述

后续看情况,可以做一下前后端分离的小demo

  • 3
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
### 回答1: 可以的。Spring Boot 是一个轻量级的框架,可以帮助开发人员快速构建出功能完备的 Java 应用程序。你可以使用 Spring Boot 和相关的技术,如 Spring Data JPA,来实现增删改查功能。 具体来说,你可以使用 Spring Data JPA 来操作数据库,使用 Spring MVC 来实现前端与后端的数据交互。对于增加记录,你可以使用 `save()` 方法;对于删除记录,你可以使用 `delete()` 方法;对于修改记录,你可以先使用 `findById()` 方法查找到记录,然后使用 `save()` 方法进行修改;对于查询记录,你可以使用 `findAll()` 方法获取所有记录,或者使用 `findById()` 方法获取单条记录。 这些方法都是 Spring Data JPA 中提供的,你可以在你的 Spring Boot 应用中使用这些方法来实现增删改查功能。 ### 回答2: 当然可以使用Spring Boot来实现增删改查操作。 首先,我们可以使用Spring Boot的依赖管理工具来快速创建一个Spring Boot项目,并导入相应需要的依赖,如Spring Web、Spring Data JPA等。 接着,我们可以创建一个数据实体类,并使用注解进行实体的定义,如@Entity、@Id、@Column等。这样,我们就可以将实体类映射到数据库表中。 然后,我们可以创建一个数据访问层接口,继承自Spring Data JPA提供的CrudRepository接口或者JpaRepository接口。这些接口内置了常用的增删改查方法,我们可以直接调用这些方法来实现相应的操作。 在服务层中,我们可以编写对应的业务逻辑代码,调用数据访问层接口的方法来实现增删改查功能。例如,通过调用save()方法实现数据的添加,通过调用delete()方法实现数据的删除,通过调用findAll()方法实现数据查询等。 最后,我们可以通过编写控制层的代码来处理前端的请求,并调用相应的服务层方法来实现对数据库的操作。例如,通过使用@RestController注解将一个类标记为处理RESTful请求的控制器,在该类中定义相应的请求映射和请求处理方法。 综上所述,使用Spring Boot可以快速实现一个增删改查的功能。Spring Boot的简洁配置和自动化特性使得开发变得更加简单和高效。 ### 回答3: 当然可以用Spring Boot一个增删改查的应用。Spring Boot是一个简化了Spring框架的开发的框架,它提供了自动配置和默认配置,大大简化了Spring应用的开发。 在使用Spring Boot进行增删改查操作时,可以使用Spring Data JPA来操作数据库。Spring Data JPA是Spring提供的一个简化了持久层操作的框架,可以直接使用注解来定义实体类和数据库操作。 首先,在项目中引入Spring BootSpring Data JPA的依赖。然后创建实体类,使用`@Entity`注解标注,定义类的属性和表的映射关系。使用`@Repository`注解标注DAO接口,定义增删改查的方法。最后,使用`@RestController`注解标注Controller类,定义接口的请求路径和请求方法,并调用DAO接口的方法进行增删改查操作。 例如,创建一个名为User的实体类,使用`@Entity`注解标注,定义id、name和age三个属性。创建一个名为UserRepository的接口,使用`@Repository`注解标注,定义save、delete和findAll方法。创建一个名为UserController的类,使用`@RestController`注解标注,定义"/user"的请求路径和GET方法,并调用UserRepository的findAll方法来查询用户列表。 以上就是一个简单的用Spring Boot进行增删改查的示例。通过使用Spring BootSpring Data JPA,可以快速地进行数据库操作,大大提高了开发效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杀死一只知更鸟debug

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值