美文网首页
Spring Boot JPA 简单的CRUD

Spring Boot JPA 简单的CRUD

作者: zhangxu0636 | 来源:发表于2019-06-12 23:07 被阅读0次

    1.Demo

    做了一个小demo来演示简单的crud,查找用户,更新用户,删除用户。

    1.1生成spring boot JPA项目

    老规矩,还是通过https://start.spring.io/这个网址生成需要的项目解压然后用idea打开,我选择的组件有:h2, JPA, web, lombok.

    生成项目

    1.2 生成User实体

    在实体中我们用到了Lombok,帮助我们减少了很多冗余代码,关于Lombok的使用,可以参考我上一篇文章Lombok是什么

    • @Entity 标注该类为实体类,属性和数据库fiel一一对应
    • @Build Lombok中的注解,在初始化类的时候可以用build方法来进行创建
    • @Data Lombok中的注解,可以参考我的上一篇文章。
    • @Table表明了该类在数据库中映射了哪一张表。
    • @AllArgsConstructor Lombok中的注解,可以参考我的上一篇文章。
    • @NoArgsConstructor Lombok中的注解,可以参考我的上一篇文章。
    package com.xuzhang.springbootjpa.model;
    
    import lombok.AllArgsConstructor;
    import lombok.Builder;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    import org.hibernate.annotations.CreationTimestamp;
    
    import javax.persistence.*;
    import java.util.Date;
    
    @Entity
    @Builder
    @Data
    @Table(name = "User")
    @AllArgsConstructor
    @NoArgsConstructor
    public class User {
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Long id;
        private String name;
        private String pwd;
        @CreationTimestamp
        private Date createTime;
        @CreationTimestamp
        private Date updateTime;
    }
    
    

    1.3 创建Repository

    Repository才是JPA的威力所在,只需要继承一个接口,那么你将得到查询,删除更新接口,真是太方便了,代码如下:

    package com.xuzhang.springbootjpa.repository;
    
    import com.xuzhang.springbootjpa.model.User;
    import org.springframework.data.jpa.repository.JpaRepository;
    import org.springframework.data.jpa.repository.Modifying;
    import org.springframework.data.jpa.repository.Query;
    
    public interface UserRepository extends JpaRepository<User, Long> {
        @Query(value = "update User set name = ? where id = ? ", nativeQuery = true)
        @Modifying
        void updateUser(String name, Long id);
    }
    
    

    1.4 创建RestController进行测试

    关于controller里面的参数传递我会另外写一篇文章进行记录

    package com.xuzhang.springbootjpa.controller;
    
    import com.xuzhang.springbootjpa.model.User;
    import com.xuzhang.springbootjpa.repository.UserRepository;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.*;
    
    import javax.transaction.Transactional;
    import java.util.List;
    
    @RestController
    public class UserController {
        @Autowired
        UserRepository userRepository;
    
        @RequestMapping("/initUser")
        public void initUser() {
            for (int i = 0; i < 10; i++) {
                userRepository.save(
                        User.builder().name("xuzhang" + i).pwd(String.valueOf(i)).build());
            }
        }
    
        @RequestMapping("/findAllUsers")
        public List<User> getAllUser() {
            return userRepository.findAll();
        }
    
        @RequestMapping(value = "/addUser", method = RequestMethod.POST)
        public User addUser(@RequestBody User user) {
            return userRepository.save(user);
        }
    
        @RequestMapping(value = "deleteUser/{id}")
        public void deleteUser(@PathVariable("id") Long id) {
            userRepository.deleteById(id);
        }
    
        @RequestMapping(value = "updateUser", method = RequestMethod.POST)
        @Transactional
        public void updateUser(@RequestBody User user) {
            userRepository.updateUser(user.getName(), user.getId());
        }
    
    }
    
    

    测试结果:

    • addUser
    addUser
    • findAllUsers


      findAllUser
    • updateUser


      updateUser
      findUser to verify update
    • deleteUser


      deleteUser
      findUser to verify delete

    码云地址:

    https://gitee.com/xuzhangRIchard/springbootjpa

    相关文章

      网友评论

          本文标题:Spring Boot JPA 简单的CRUD

          本文链接:https://www.haomeiwen.com/subject/lxqhfctx.html