1、spring-data-jpa是spring对hibernate的整合
2、spring boot工程在实体类添加注解、添加两个依赖、写配置文件,可以自动生成数据库表
实体类:
@Entity //标明根据该类创建数据表
public class People {
@Id
@GeneratedValue //主键自增
private Long id;
private String name;
public People(){ //必须要有无参构造
}
}
 
application.yml默认配置文件:
#默认配置文件
spring:
profiles:
active: default
datasource: #配置数据库
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/hap_dev
username: root
password: tiger
jpa:
hibernate:
ddl-auto: create #运行时自动根据实体类创建数据库表
show-sql: true
 
注意:
ddl-auto: create,即运行时自动根据实体类创建people数据库表 ,若数据库表
people已存在则先删除再创建
ddl-auto: update,即运行时自动根据实体类创建people数据库表 ,若数据库表
people已存在则不做任何操作
ddl-auto: create-drop,即运行时自动根据实体类创建people数据库表,当应用停
止时删除该表
ddl-auto: none,即运行时什么也不干,无数据库表的操作
ddl-auto: validate,即运行时验证实体类属性与数据库表字段是否一致,不一致
则抛异常
 
 
pom.xml依赖(基本的spring boot依赖要有)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
 
3、由spring-data-jpa操作数据库(结合restful风格)
Service接口类:
// 继承jpa操作数据库的接口,并指定实体类名和主键类型
public interface PeopleRepository extends JpaRepository<People,Long> {
public List<People> findByName(String name);//自定义的方法命名要符合这个格式
}
Controller类:
@RestController
public class PeopleController {
@Autowired
private PeopleRepository peopleRepository;
 
//查询people表所有数据
@GetMapping("/peoples")
public List<People> getAll(){
return peopleRepository.findAll();
}
 
// 插入一条数据
@PostMapping("/peoples")
public People addOne(@RequestParam("name") String name){
People p=new People();
p.setName(name);
return peopleRepository.save(p);
}
 
//由id获取一条数据
@GetMapping("/peoples/{id}")
public People getOne(@PathVariable("id") Long id){
return peopleRepository.findOne(id);
}
 
//由id更新、插入一条数据
@PutMapping("/peoples/{id}")
public People putOne(@PathVariable("id") Long id,@RequestParam("name") String name){
People p=new People();
p.setId(id);
p.setName(name);
return peopleRepository.save(p);
}
 
// 由id删除一条数据
@DeleteMapping("/peoples/{id}")
public void delOne(@PathVariable("id") Long id){
peopleRepository.delete(id);
}
 
//通过name查询一条或多条数据
@GetMapping("/peoples/name/{name}")
public List<People> findByName(@PathVariable("name") String name){
return peopleRepository.findByName(name);
}
}
 
 
 
 

spring-data-jpa操作数据库的更多相关文章

  1. spring data jpa 操作pipelinedb 的continuous view 与stream

    一. 由于pipelinedb是postgreSQL的扩展,因此相关依赖于配置都合集成postgreSQL是一样的. springboot + spring data jpa + postgreSQL ...

  2. Springboot 系列(十)使用 Spring data jpa 访问数据库

    前言 Springboot data jpa 和 Spring jdbc 同属于 Spring开源组织,在 Spring jdbc 之后又开发了持久层框架,很明显 Spring data jpa 相对 ...

  3. Spring Boot (五)Spring Data JPA 操作 MySQL 8

    一.Spring Data JPA 介绍 JPA(Java Persistence API)Java持久化API,是 Java 持久化的标准规范,Hibernate是持久化规范的技术实现,而Sprin ...

  4. 最近项目中使用Spring data jpa 踩过的坑

    最近在做一个有关OA项目中使用spring data JPA 操作数据库,结果遇到了补个不可思议的麻烦.困惑了好久. 首先看一下问题吧,这就是当时测试“设置角色时,需要首先删除该用户已经拥有的角色时” ...

  5. Spring Data JPA简单使用

    用Spring Data JPA操作数据库 这份教程教你用Spring Data JPA从关系数据库mysql中存储和提取数据.总结来自https://spring.io/guides/gs/acce ...

  6. SpringBoot入门 (五) 数据库访问之spring data jpa

    本文记录学习使用spring data jpa访问数据库 一 什么是Spring Data JPA JPA(Java Persistence API)是Sun官方提出的Java持久化规范.它为Java ...

  7. Spring Boot (6) Spring Data JPA

    JPA 全称Java Persistence API,JPA通过JDK 5.0注解或xml描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中 JPA是sun官方提出的java持久化规范, ...

  8. Spring Data JPA 多个实体类表联合视图查询

    Spring Data JPA 查询数据库时,如果两个表有关联,那么就设个外键,在查询的时候用Specification创建Join 查询便可.但是只支持左连接,不支持右连接,虽说左右连接反过来就能实 ...

  9. Spring boot 中Spring data JPA的应用(一)

    最近一直在研究Spring Boot,今天为大家介绍下Spring Data JPA在Spring Boot中的应用,如有错误,欢迎大家指正. 先解释下什么是JPA JPA就是一个基于O/R映射的标准 ...

  10. Spring Boot使用Spring Data Jpa对MySQL数据库进行CRUD操作

    只需两步!Eclipse+Maven快速构建第一个Spring Boot项目 构建了第一个Spring Boot项目. Spring Boot连接MySQL数据库 连接了MySQL数据库. 本文在之前 ...

随机推荐

  1. 半吊子菜鸟学Web开发4 --Html css学习2

    1<a>标签,链接到另一个页面 <a href="目标网址" title="鼠标滑过显示的文本">链接显示的文本</a> H ...

  2. Java编程:Lock

    在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问.本文我们继续来探讨这个问题,从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方 ...

  3. java 队列

    Java中的list和set有什么区别   list与set方法的区别有:list可以允许重复对象和插入多个null值,而set不允许:list容器是有序的,而set容器是无序的等等 Java中的集合 ...

  4. spring aop 源码解读之我见

    spring aop 都是动态代理,分为jdk代理和cglib代理.默认的情况下,如果类有实现了接口,使用jdk代理.如果没有实现接口,则使用cglib代理.在下面的代码中,我会标明对应的这段代码. ...

  5. ACM - 图论- 网络流 - 算法模板

    \(EK\) 算法模板 #include <iostream> #include <queue> #include<string.h> using namespac ...

  6. C++ | 虚函数初探

    虚函数 虚函数 是在基类中使用关键字 virtual 声明的函数.在派生类中重新定义基类中定义的虚函数时,会告诉编译器不要静态链接到该函数. 我们想要的是在程序中任意点可以根据所调用的对象类型来选择调 ...

  7. s函数中积分程序更改

    function [sys,x0,str,ts,simStateCompliance] = int_hyo(t,x,u,flag) switch flag, case 0, [sys,x0,str,t ...

  8. InfoQ Trends Report

    InfoQ Trends Report InfoQ Trends Report Culture & Methods Trends Report - March 2021 DevOps and ...

  9. Mpvue 小程序转 Web 实践总结

    介绍 Mpvue 是一个使用 Vue.js 开发小程序的前端框架.框架基于 Vue.js 核心,修改了 Vue.js 的 runtime 和 compiler 实现,使其可以运行在小程序环境中,从而为 ...

  10. 你可以说出export export default || model.exports exports 的区别吗(一)

    一.前言: 用模块写代码,为什么要用模块来写代码:ES6之前,在js中定义的一切,都是共享一个全局作用域的,随着web应用变得复杂,这样做会引起如:命名冲突和安全问题.于是引入了模块. 二.清楚一个概 ...