• Spring Data JPA -1-CRUD入门


    1) 引入jar包支持

     1 <dependency>
     2     <groupId>org.springframework.boot</groupId>
     3     <artifactId>spring-boot-starter-data-jpa</artifactId>
     4 </dependency>
     5 
     6 <!-- 数据库支持 -->
     7 <dependency>
     8         <groupId>mysql</groupId>
     9         <artifactId>mysql-connector-java</artifactId>
    10 </dependency>
    View Code

    2)数据库表

     3)java实体

      注意,框架本身并不能识别转换驼峰和下划线,必须使用注解 @Column(name = "user_id") 映射出正确的字段名

      别忘了再类头上加上注解 @Table(name = "user") 指定数据库名称

     1 @Entity
     2 @Table(name = "user")
     3 public class UserModel {
     4     @Id
     5     @GeneratedValue(strategy= GenerationType.IDENTITY)
     6     @Column(name = "user_id")
     7     private Integer userId ; 
     8     
     9     @Column(name = "user_name")
    10     private String userName ;
    11     
    12     private Integer age ;
    13         // get  set 略
    14

    4 ) 生成 DAO 层接口

      注意此时生成的是 dao 接口并不是 类。 在继承了框架提供的 接口 JpaRepository<  实体名 , 主键类型  > , JpaSpecificationExecutor< 实体名  >, Serializable 后

      所有简单的 CRUD 都可以调用父接口中的方法, 此时 简单的CRUD 已经可以实现 , 具体见下文 service  层

      PS。接口中有自定义方法 findUserByUserName() 方法在下文说明。

    public interface UserJpa extends
        JpaRepository<UserModel, Integer> ,
        JpaSpecificationExecutor<UserModel>,
        Serializable{
    
        UserModel findUserByUserName(String userName);
    }

    5 ) service 层 对dao层的调用

     1 /**
     2  * 
     3  * @作者 陈先生
     4  * @创建时间 2018年7月17日 
     5  * @功能描述 user service层
     6  */
     7 @Service
     8 public class UserService {
     9 
    10     @Autowired
    11     private UserJpa userJpa;
    12 
    13     public UserModel getUserModel(Integer id) {
    14         return userJpa.findById(id).get();
    15     }
    16 
    17     public UserModel saveUserModel(UserModel user) {
    18         return userJpa.saveAndFlush(user);
    19     }
    20 
    21     public String delUserById(Integer id) {
    22 
    23         userJpa.deleteById(id);
    24         return "delete model success";
    25     }
    26     
    27     public UserModel findUserByName(String userName) {
    28 
    29         return userJpa.findUserByUserName(userName);
    30     }
    31 
    32     
    33 }

    根据以上步奏,已经可以简单实现对数据库的简单crud操作。

    -----------------------------------------------------------------------------------------------------------------------------------

      条件查询 接口中只默认给出了 根据ID 主键来做条件查询,代码jpa层 添加了自定义方法findUserByUserName() .。 在调用的时候也可以直接

    调用不需要实现, 详解见后文。

  • 相关阅读:
    python 对比学习
    支付宝
    springboot logback
    ngnix学习视频
    node学习
    puppeteer 相关知识
    Dota2App--第三天
    Dota2APP--第二天
    Dota2APP--第一天
    iOS ---进阶之摇一摇
  • 原文地址:https://www.cnblogs.com/cx987514451/p/9323115.html
Copyright © 2020-2023  润新知