SpringBoot学习 预计阅读 ... 分钟 字号中 沉浸阅读 CRUD流程: 1. 在pojo里写User表 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061package com.learn.learn.pojo;import jakarta.persistence.*;@Table(name="tb_user")@Entitypublic class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "user_id") private Integer userId; @Column(name = "user_name") private String userName; @Column(name = "password") private String password; @Column(name = "email") private String email; public Integer getUserId() { return userId; } public void setUserId(Integer userId) { this.userId = userId; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } @Override public String toString() { return "User{" + "userId=" + userId + ", userName='" + userName + '\'' + ", password='" + password + '\'' + ", email='" + email + '\'' + '}'; }} 2. 在pojo.dto里写UserDTO,表示从前端接收的字段名 12345678910111213141516171819202122232425262728293031323334353637383940414243package com.learn.learn.pojo.dto;import jakarta.persistence.Column;public class UserDTO { private String userName; private String password; private String email; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } @Override public String toString() { return "UserDTO{" + "userName='" + userName + '\'' + ", password='" + password + '\'' + ", email='" + email + '\'' + '}'; }} 3. 在pojo里写ResponseMessage泛型类,表示要返回给前端的数据结构 1234567891011121314151617181920package com.learn.learn.pojo;import org.springframework.http.HttpStatus;public class ResponseMessage<T> { private final Integer code; private final String message; private final T data; public ResponseMessage(Integer code, String message, T data) { this.code = code; this.message = message; this.data = data; } public static <T> ResponseMessage<T> success(T data) { return new ResponseMessage(HttpStatus.OK.value(), "success", data); }} 4. 在controller里写UserController类用来控制实际的请求 123456789101112131415161718192021222324252627package com.learn.learn.controller;import com.learn.learn.pojo.User;import com.learn.learn.pojo.dto.UserDTO;import com.learn.learn.service.IUserService;import com.learn.learn.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.*;@RestController //接口返回的对象转换为json文本@RequestMapping("/user") //访问localhost:8080/user 访问user接口public class UserController { @Autowired IUserService userService;// 增加 @PostMapping public String add(@RequestBody UserDTO user){ userService.add(user); return "success!"; }// 查询// 修改// 删除} 5. 在service里写UserService类用来操作数据 12345678910111213141516171819202122package com.learn.learn.service;import com.learn.learn.pojo.User;import com.learn.learn.pojo.dto.UserDTO;import com.learn.learn.repository.UserRepository;import org.springframework.beans.BeanUtils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;@Service //spring beanpublic class UserService implements IUserService { @Autowired UserRepository userRepository; @Override public void add(UserDTO user) {// 调用数据访问类 User userPojo = new User(); BeanUtils.copyProperties(user,userPojo); userRepository.save(userPojo); }} 6. 在repository里写UserRepository类,用来真正对数据库进行操作 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071package com.learn.learn.repository;import com.learn.learn.pojo.User;import org.springframework.data.repository.CrudRepository;import org.springframework.stereotype.Repository;import java.util.Optional;@Repositorypublic class UserRepository implements CrudRepository<User, Integer> { @Override public <S extends User> S save(S entity) { return null; } @Override public <S extends User> Iterable<S> saveAll(Iterable<S> entities) { return null; } @Override public Optional<User> findById(Integer integer) { return Optional.empty(); } @Override public boolean existsById(Integer integer) { return false; } @Override public Iterable<User> findAll() { return null; } @Override public Iterable<User> findAllById(Iterable<Integer> integers) { return null; } @Override public long count() { return 0; } @Override public void deleteById(Integer integer) { } @Override public void delete(User entity) { } @Override public void deleteAllById(Iterable<? extends Integer> integers) { } @Override public void deleteAll(Iterable<? extends User> entities) { } @Override public void deleteAll() { }} ← 上一篇BTC的密码学原理 下一篇 →1.6.3版本的vitepress使用unocss方法
读者来信
✎ 投递您的来信