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() .。 在调用的时候也可以直接

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

原文地址:https://www.cnblogs.com/cx987514451/p/9323115.html