Spring Data JPA(类似于Java Web 中的 DAO)
操作声明持久层的接口(Repository)

三个核心接口:

CrudRepository
PagingAndSortingRepository
JpaRepository
相应解释:

该类提供基本的crud等接口;
该类提供基本分页,排序等接口;
作为前二者的子类,继承它们所有接口,在实际项目中,均为JapRepository或其子类进行基本的数据库操作;
概念图:
在这里插入图片描述

如何使用JPA:

引入相关JPA;
1
使用JpaRepository接口;
1
服务层实现;
1
CRUD和分页简单实现;
1
自定义查询;
1
集成测试;
1
具体实践:
项目架构:在这里插入图片描述
一:添加相应依赖
由于IDEA2020最新版本,可以直接勾选依赖:
Web下SpringWeb
SQL下Spring Data JPA
SQL下Spring Data JDBC
MySQL Driver
在这里插入图片描述
二:配置properties文件:
在这里插入图片描述

spring.datasource.url=jdbc:mysql://localhost:3306/redbook?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=mysq35663
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true

1
2
3
4
5
6
7
注意点:
关于连接池连接超时问题:应在url后加上:serverTimezone=UTC;
增加更新数据表的操作:spring.jpa.hibernate.ddl-auto=update
在控制台显示SQL语句:spring.jpa.show-sql=true
根据自身主机的端口,数据库账号和密码;输入正确的配置信息;
三:构造Entity类:
在这里插入图片描述

package com.example.test.sharebook2.entity;

import javax.persistence.*;

@Entity
@Table
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column
private String phone;
@Column
private String password;

public Integer getId() {return id;
}public String getPhone() {return phone;
}public String getPassword() {return password;
}public void setId(Integer id) {this.id = id;
}public void setPhone(String phone) {this.phone = phone;
}public void setPassword(String password) {this.password = password;
}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
注意点:

  1. 添加@Entity依赖、添加@Table依赖;
  2. 标记id,引入自动增长,使表格具有实体完整性;
    1
    2
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;
    1
    2
    3
    3.正常列应添加@Column;
    4.添加相应读写方法(Set,Get);
    5.配置之后,自动在相应的数据库中生成表格;

四:引入相应接口:在这里插入图片描述
引入JpaRepository接口,创建其子类,方便后期直接注入;
JpaRepository<User,Integer>中第一个参数,代表实体类名,第二个参数代表表中主键类型;
此时可以运行SpringApplication的主活动,向数据库注入相应的实体类(表格);
五:编写DAO(CRUD):在这里插入图片描述
package com.example.test.sharebook2.controller;

import com.example.test.sharebook2.entity.User;
import com.example.test.sharebook2.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class UserTest {

@Autowired
UserRepository userRepository;@GetMapping("/all")
public List<User> selectUser(User user){return userRepository.findAll();
}@GetMapping("/user")
public User insertUser(User user){User save = userRepository.save(user);return save;
}@GetMapping("/select/{phone}")
public List<User> getUser(@PathVariable("phone") String phone){List<User> userlist = userRepository.findByPhone(phone);return userlist;
}

}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
具体代码讲解:
注入相应的JpaRepository子接口;
@Autowired
UserRepository userRepository;
1
2
单个查询:
@GetMapping("/user/{id}")
public User getUser(@PathVariable(“id”) Integer id) {
User select = userRepository.findById(id).get();
return select;
}
1
2
3
4
5
插入数据:
@GetMapping("/user")
public User insertUser(User user) {
User save = userRepository.save(user);
return save;
}
1
2
3
4
5
查询所有数据:
@GetMapping("/all")
public List selectUser(User user){
return userRepository.findAll();
}
1
2
3
4
重新运行SpringApplication的主活动。
六:在Chrome中进行相应测试:
1.在这里插入图片描述
2.在这里插入图片描述
3.在这里插入图片描述

五分钟快速入门 Spring Data JPA相关推荐

  1. Spring Data JPA 五分钟快速入门和实践

    Spring Data JPA(类似于Java Web 中的 DAO) 操作声明持久层的接口(Repository) 三个核心接口: CrudRepository PagingAndSortingRe ...

  2. markdown 本地链接_五分钟快速入门Markdown

    前言 开篇第一问,什么是markdown?我为什么选择用它而不是用word? markdown是一种极为简洁的标记语言,使用markdown可以更集中于写作内容本身而不必过分纠结于格式排版问题,可以把 ...

  3. Koala五分钟快速入门

    2019独角兽企业重金招聘Python工程师标准>>> Koala介绍 关于Koala平台更多的详细内容请访问:http://openkoala.org/ Koala Plugin的 ...

  4. Palo Doris版五分钟快速入门

    本文转载自百度开发者中心https://developer.baidu.com/article/detail.html?id=294225 在本教程章节中,我将为大家介绍使用Palo UI快速体验和使 ...

  5. 快速搭建springmvc+spring data jpa工程

    一.前言 这里简单讲述一下如何快速使用springmvc和spring data jpa搭建后台开发工程,并提供了一个简单的demo作为参考. 二.创建maven工程 http://www.cnblo ...

  6. spring data jpa从入门到精通_Spring Data JPA的简单入门

    前言 spring data JPA是spring团队打造的sping生态全家桶的一部分,本身内核使用的是hibernate核心源码,用来作为了解java持久层框架基本构成的样本是再好不过的选择.最近 ...

  7. Spring Boot(五):spring data jpa的使用

    Spring Boot(五):spring data jpa的使用 一.spring data jpa介绍 1,JPA是什么 JPA(Java Persistence API)是Sun官方提出的Jav ...

  8. Spring Data JPA入门

    见:http://sishuok.com/forum/blogPost/list/7000.html Spring Data是什么 Spring Data是一个用于简化数据库访问,并支持云服务的开源框 ...

  9. Spring Data JPA 从入门到精通~@Version处理乐观锁的问题

    @Version 处理乐观锁的问题 @Version 乐观锁介绍 我们在研究 Auditing 的时候,发现了一个有趣的注解 @Version,源码如下: package org.springfram ...

最新文章

  1. 熬夜与不熬夜,10年后差距到底有多大?惊了!
  2. 氪纪2015| 虚拟与现实的距离——听听从业者的声音【中篇】
  3. SQL 2005 数据库备份还原
  4. PC上虚拟机中安装NW 7.02 ABAP试用版
  5. js中输出变量的类型和输出对象的的属性/方法/成员函数
  6. django设置超级管理员_Django的简介与安装
  7. 元气骑士超级计算机有什么用,元气骑士三持技巧分享,手残党的福利轻松过关...
  8. word受权限保护无法打开_保护S71500程序的几种方式
  9. WPF--ContextMenu绑定命令的一个问题
  10. 语音领域的波束形成Beamforming小结
  11. 是妄言还是实话 云电脑将代替传统PC?
  12. npm publish常见问题
  13. 【工程应用】用Redis存储特征
  14. 小程序如何通过云开发获取手机号
  15. unicode编码和utf-8编码的区别
  16. 在Excel中选取一行中的最大数值进行标题匹配
  17. 北京林业大c语言程序设计考试试题,2016年北京林业大学信息学院程序设计语言、数据结构(上机操作)复试笔试最后押题五套卷...
  18. pythonocc 切完显示要要.Shape()
  19. canvas宽高设置
  20. Android5.x RecyclerView 应用解析

热门文章

  1. poj 2253 最短路变形——最大边的最小值
  2. 优达学城深度学习之七——TensorFlow卷积神经网络
  3. day14 java的super
  4. ndoejs中中间件的使用
  5. note_pom.xml文件配置说明_note
  6. mysql 1021 disk full_大分区使用xfs文件系统存储备份遇到的问题
  7. wordpress ?php the_time() ?,WordPress时间函数the_time与get_the_time解析
  8. mysql查询中怎样使用索引_MySQL如何使用索引
  9. ROS入门笔记(五):ROS中运行rqt_plot的问题(kinetic)
  10. react月份选择控件_看我的案例:用react写一个日历控件!