Spring Data JPA之Spring boot整合JPA进行CRUD(下)

简介: Spring Data JPA之Spring boot整合JPA进行CRUD(下)

编写业务层

UserSerivce接口

import com.example.springdatajpa.entity.UserEntity;
import java.util.List;
/**
 * @author : [WangWei]
 * @version : [v1.0]
 * @className : UserSerivce
 * @description : [User业务层接口]
 * @createTime : [2022/11/19 20:27]
 * @updateUser : [WangWei]
 * @updateTime : [2022/11/19 20:27]
 * @updateRemark : [描述说明本次修改内容]
 */
public interface UserSerivce {
    //新增用户
    UserEntity insertUser(UserEntity user);
    //删除用户
    void deleteUser(Long id);
    //修改用户信息
    UserEntity updateUser(UserEntity user);
    //查询所有用户
    List<UserEntity> queryUser();
    //根据手机号查询用户信息
    UserEntity queryUserByPhoneNumber(UserEntity user);
}

UserServiceImpl实现类

import com.example.springdatajpa.entity.UserEntity;
import com.example.springdatajpa.repository.UserRepository;
import com.example.springdatajpa.service.UserSerivce;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
 * @author : [WangWei]
 * @version : [v1.0]
 * @className : UserServiceImpl
 * @description : [User业务实现类]
 * @createTime : [2022/11/19 20:33]
 * @updateUser : [WangWei]
 * @updateTime : [2022/11/19 20:33]
 * @updateRemark : [描述说明本次修改内容]
 */
@Service
public class UserServiceImpl implements UserSerivce {
    //User数据访问接口
    @Resource
    UserRepository userRepository;
    /*
     * @version V1.0 
     * Title: insertUser
     * @author Wangwei 
     * @description 插入用户信息
     * @createTime  2022/11/20 8:47
     * @param [user] 
     * @return com.example.springdatajpa.entity.UserEntity
     **/
    @Override
    public UserEntity insertUser(UserEntity user) {
       return userRepository.save(user);
    }
    /*
     * @version V1.0 
     * Title: deleteUser
     * @author Wangwei 
     * @description 根据id删除用户信息
     * @createTime  2022/11/20 8:48
     * @param [id] 
     * @return void
     */
    @Override
    public void deleteUser(Long id) {
        userRepository.deleteById(id);
    }
    /*
     * @version V1.0 
     * Title: updateUser
     * @author Wangwei 
     * @description 修改用户信息,save方法是如果存在这条数据则进行修改否则进行新增
     * @createTime  2022/11/20 8:49
     * @param [user] 
     * @return com.example.springdatajpa.entity.UserEntity
     **/
    @Override
    public UserEntity updateUser(UserEntity user) {
        return userRepository.save(user);
    }
    /*
     * @version V1.0 
     * Title: queryUser
     * @author Wangwei 
     * @description 查询所有用户
     * @createTime  2022/11/20 8:50
     * @param [] 
     * @return java.util.List<com.example.springdatajpa.entity.UserEntity>
     */
    @Override
    public List<UserEntity> queryUser() {
        return userRepository.findAll();
    }
  /*
     * @version V1.0
     * Title: queryUserByPhoneNumber
     * @author Wangwei
     * @description 通过手机号查询用户信息
     * @createTime  2022/11/20 8:50
     * @param [user]
     * @return com.example.springdatajpa.entity.UserEntity
     * */
    @Override
    public UserEntity queryUserByPhoneNumber(UserEntity user) {
        return userRepository.findUserEntitiesByPhoneNumberAndIsDelete(user.getPhoneNumber(),0);
    }

创建UserController类

import com.example.springdatajpa.entity.UserEntity;
import com.example.springdatajpa.service.UserSerivce;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
 * @author : [WangWei]
 * @version : [v1.0]
 * @className : UserController
 * @description : [User控制层类]
 * @createTime : [2022/11/19 20:40]
 * @updateUser : [WangWei]
 * @updateTime : [2022/11/19 20:40]
 * @updateRemark : [描述说明本次修改内容]
 */
@RestController
@RequestMapping("/user")
public class UserController {
    //注入业务接口
    @Resource
    UserSerivce userSerivce;
    /*
     * @version V1.0
     * Title: insertUser
     * @author Wangwei
     * @description 新增用户
     * @createTime  2022/11/20 8:54
     * @param [user]
     * @return UserEntity
     */
    @PostMapping("/insert")
    public UserEntity insertUser(@RequestBody UserEntity user){
        return userSerivce.insertUser(user);
    }
    /*
     * @version V1.0
     * Title: deleteUser
     * @author Wangwei
     * @description 通过id删除用户
     * @createTime  2022/11/20 8:56
     * @param [id]
     * @return void
     */
    @DeleteMapping("delete/{id}")
    public void deleteUser(@PathVariable("id") Long id){
        userSerivce.deleteUser(id);
    }
    /*
     * @version V1.0
     * Title: updateUser
     * @author Wangwei
     * @description:修改用户信息
     * @createTime  2022/11/20 8:57
     * @param [user]
     * @return com.example.springdatajpa.entity.UserEntity
     * */
    @PutMapping("/update")
    public UserEntity updateUser(@RequestBody UserEntity user){
        return userSerivce.updateUser(user);
    }
    /*
     * @version V1.0
     * Title: queryUser
     * @author Wangwei
     * @description 查询所有用户信息
     * @createTime  2022/11/20 9:25
     * @param []
     * @return java.util.List<com.example.springdatajpa.entity.UserEntity>
     */
    @GetMapping("/query")
    public List<UserEntity> queryUser(){
        return userSerivce.queryUser();
    }
    @GetMapping("/query/{phoneNumber}")
    public UserEntity queryUserByPhoneNumber(@PathVariable("phoneNumber") String phoneNumber){
        return userSerivce.queryUserByPhoneNumber(phoneNumber);
    }
}

运行测试

选择使用postman进行调用接口测试

插入用户数据

{
        "createdBy": "wangwei",
        "createdId": 3,
        "createTime": "2022-11-20T02:20:08.000+00:00",
        "updateBy": "wangwei",
        "updateId": 3,
        "updateTime": "2022-11-20T02:20:08.000+00:00",
        "isDelete": 0,
        "remark": null,
        "id": 1,
        "userName": "wangwei",
        "password": "003",
        "phoneNumber": "110",
        "sex": "男",
        "birthday": "2022-11-20T02:19:40.000+00:00"
    }



删除用户数据



修改数据

查询数据



根据手机号查询



总结

目前只是对Spring Data JPA的基础运用,对于JPA与mybatis这一类的ORM框架之间本质的区别还需要更加深入的学习和理解。

如果博主的文章对您有所帮助,可以评论、点赞、收藏,支持一下博主!!!

目录
相关文章
|
1月前
|
Java 测试技术 开发者
springboot学习四:Spring Boot profile多环境配置、devtools热部署
这篇文章主要介绍了如何在Spring Boot中进行多环境配置以及如何整合DevTools实现热部署,以提高开发效率。
67 2
|
1月前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
109 1
|
1月前
|
Java API Spring
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中拦截器的入门教程和实战项目场景实现的详细指南。
28 0
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
|
1月前
|
Java API Spring
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中过滤器的基础知识和实战项目应用的教程。
27 0
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
|
1月前
|
Java Spring
springboot 学习十一:Spring Boot 优雅的集成 Lombok
这篇文章是关于如何在Spring Boot项目中集成Lombok,以简化JavaBean的编写,避免冗余代码,并提供了相关的配置步骤和常用注解的介绍。
105 0
|
6月前
|
XML Java 数据库连接
Spring Boot的数据访问之Spring Data JPA以及Hibernate的实战(超详细 附源码)
Spring Boot的数据访问之Spring Data JPA以及Hibernate的实战(超详细 附源码)
119 0
|
2月前
|
Java 数据库连接 API
【Java笔记+踩坑】Spring Data JPA
从常用注解、实体类和各层编写方法入手,详细介绍JPA框架在增删改查等方面的基本用法,以及填充用户名日期、分页查询等高级用法。
【Java笔记+踩坑】Spring Data JPA
|
3月前
|
Java Spring 数据库
怎样动动手指就能实现数据操作?Spring Data JPA背后的魔法揭秘
【8月更文挑战第31天】在Java开发中,数据库交互至关重要。传统的JDBC操作繁琐且难维护,而Spring Data JPA作为集成JPA的数据访问层解决方案,提供了CRUD等通用操作接口,显著减少代码量。通过继承`JpaRepository`,开发者能轻松实现数据的增删改查,甚至复杂查询和分页也不再困难。本文将通过示例详细介绍如何利用Spring Data JPA简化数据访问层的开发,提升代码质量和可维护性。
43 0
|
3月前
|
存储 Java 数据库
|
3月前
|
存储 Java API
下一篇
无影云桌面