zoukankan      html  css  js  c++  java
  • 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() .。 在调用的时候也可以直接

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

  • 相关阅读:
    接口测试工具 — jmeter(关联)
    接口测试工具 — jmeter(参数化)
    接口测试工具 — jmeter(header与cookie的添加)
    【多态】重写与重载的区别
    【面试】软件测试面试题
    【Jenkins】testng+testNgXslt+ant优化测试报告
    【ANT】输入中文格式为乱码
    【Sql】经典sql语句
    【log4j】使用注意事项
    【问题】用ant编译时,提示编码utf为不可映射字符
  • 原文地址:https://www.cnblogs.com/cx987514451/p/9323115.html
Copyright © 2011-2022 走看看