概述:java persistence API定义了一些列对象持久化的标准,目前实现这一规范的产品有hibernate、topLink

      1、pom.xml中添加组件

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jpa</artifactId>
</dependency><dependency><groupId>mysql</groupId><artifactId>mysql-comector-java</artifactId>
</dependency>

      2、配置数据库相关信息

      在application.yml中配置(在这里配置生产环境和开发环境都可以使用)
idea中键入spring.datasoure. driver快捷输入(我也忘了driver前是否加空格了)
datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/dbgril
    username: rootpassword: root

3、一些数据库的相关操作
   create 
      每次启动应用创建一个空表,若数据库中有同名表则把旧表删除后再创建
   update
      每次启动应用创建一个表,如果数据库表中有数据,仍然保留数据
   create-drop
      应用停止的时候,将数据库中的表删除
   none
      默认的,什么都不做
   Validate
      验证类中的属性和表结构是否一致,若不一致则报错
spring:profiles:active: devdatasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/dbgril
    username: rootpassword: rootjpa:hibernate:ddl-auto: updateshow-sql: true

4、对数据的一些操作
PUT请求方式body不能使用form-data,需要使用x-www-form-urlencoded
  1. 创建实体类
        @Entity 在类名上需要添加该注解
      @Id 在id变量上添加该注解声明主键@GeneratedValue 在id变量上声明该注解表示自动新增
        添加get、set方法以及构造方法
  2. 声明一个接口并继承JpaRepository<T,ID>
      T:实体类的类名
       ID:Id的数据类型
import org.springframework.data.jpa.repository.JpaRepository;import java.util.List;public interface GrilRepository extends JpaRepository<Gril,Integer>{//拓展通过年龄查询public List<Gril> findByAge(Integer age);
}

  3. 建一个类用 @RestController注解,
        使用 @Autowired 将接口类注入(简单示例)
  4.使用对象的方式进行数据库的交互
    创建一个方法使用 Mapping 注解,并在方法内使用jpa提供的数据库的操作方法
      findAll()  查询所有
      findOne(id) 通过id查找一个数据库对象
      delete(id) 通过id删除一个数据库对象
      save(S s)  新增或者修改
(如果不传主键id进行新增操作;如果传递了主键id,先在数据库中根据id查找是否有数据,如果没有则新增,如果有则修改)
 如果遇到修改部分数据的时候,使用对象的方式保存会导致其它的字段赋值为null
    第一种解决方式:使用原生的sql进行更新
    第二种解决方式:先进行findOne(id)查找对象,然后set完要更新的字段,最后进行save(gril)更新
  5.拓展通过其它变量查询数据库值
  在接口中定义抽象方法;
public List<Gril> findByAge(Integer age);

附:code示例
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.util.List;@RestController
public class GrilController {@Autowiredprivate GrilRepository grilRepository;//查询女生列表@GetMapping(value = "/grils")public List<Gril> girlList(){List<Gril> list = grilRepository.findAll();return list;};//添加一个女生@PostMapping(value = "/grils")public Gril grilAdd(@RequestParam("cupSize")String cupSize,@RequestParam("age")Integer age){Gril gril = new Gril();gril.setCupSize(cupSize);gril.setAge(age);return  grilRepository.save(gril);}//通过id查询一个女生@GetMapping(value = "/grils/{id}")public Gril grilFindOne(@PathVariable("id") Integer id){Gril gril = grilRepository.findOne(id);return gril;}//通过id更新一个女生@PutMapping(value = "/grils/{id}")public Gril grilUpdate(@PathVariable("id")Integer id,@RequestParam("cupSize")String cupSize,@RequestParam("age")Integer age){Gril gril = new Gril();gril.setId(id);gril.setCupSize(cupSize);gril.setAge(age);return  grilRepository.save(gril);}
//通过id删除一个女生@DeleteMapping(value = "/grils/{id}")public void grilDlete(@PathVariable("id")Integer id){grilRepository.delete(id);}//通过年龄查询@GetMapping("/grils/age/{age}")public List<Gril> findByAge(@PathVariable(value = "age") Integer age){return  grilRepository.findByAge(age);}
}

转载于:https://www.cnblogs.com/404code/p/10569151.html

五、spring-data-Jpa 数据库操作相关推荐

  1. 01 | Spring Data JPA 初识

    课程正式开始了,这里我会以一个案例的形式来和你讲解如何通过 Spring Boot 结合 Spring Data JPA 快速启动一个项目.如何使用 UserRepository 完成对 User 表 ...

  2. Spring Data JPA 禁止自动更新

    公司的项目后台架构是SpringBoot + Spring Date JPA,采用MySQL数据库.在工作刚开始时就遇到了一个奇怪的现象.在采用Date JPA查询完数据库之后,若改变了查询出的对象属 ...

  3. Spring Security+Spring Data Jpa 强强联手,安全管理只有更简单!

    Spring Security+Spring Data Jpa 强强联手,安全管理没有简单,只有更简单! 这周忙着更新 OAuth2,Spring Security 也抽空来一篇. Spring Se ...

  4. Spring Data JPA 实现多表关联查询

    原文链接:https://blog.csdn.net/johnf_nash/article/details/80587204 多表查询在spring data jpa中有两种实现方式,第一种是利用hi ...

  5. Spring Boot 最佳实践(五)Spring Data JPA 操作 MySQL 8

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

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

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

  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

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

  9. 【Spring Data JPA自学笔记五】一对多、多对多和级联

    文章目录 数据库表的关系 一对多 多对多 Spring Data JPA实现一对多 基本配置 实现一对多 放弃维护权 Spring Data JPA实现多对多 基本配置 实现多对多 级联 之前的所有操 ...

  10. SpringBoot 实战 (八) | 使用 Spring Data JPA 访问 Mysql 数据库

    微信公众号:一个优秀的废人 如有问题或建议,请后台留言,我会尽力解决你的问题. 前言 如题,今天介绍 Spring Data JPA 的使用. 什么是 Spring Data JPA 在介绍 Spri ...

最新文章

  1. 数据分析不落地?典型案例教会你!
  2. mysql创建用户报错ERROR 1290
  3. AngularJS特性
  4. 怎么查看一个网站是用什么语言编写的?
  5. c语言单词的一个字母变换,c语言:输入一行英文字符串,把每个单词第一个字母变为大写,输出修改后的字符串知道...
  6. 极通ewebs应用虚拟化系统v6.2完美上市
  7. 洛谷——P1428 小鱼比可爱
  8. [转载] python+selenium自动化软件测试(第3章):unittes
  9. 类似于input输入框placeholder的效果,兼容ie8
  10. 响应式网站关于资源跨域问题
  11. 解决 css 浮动后 父元素高度失效问题
  12. 武汉理工大学计算机转专业名单,武汉理工大学转专业的限制
  13. Mortal Kombat Tower (dp动态规划)
  14. 【数学和算法】特征值、特征向量、特征空间,变换矩阵的行列式和特征值
  15. linux查看pcie网卡命令,kudzu命令查看及设置网卡等硬件信息
  16. 项目经理产品经理必看,流程图绘制Drawio
  17. 【鲲鹏应用迁移】实验:通过鲲鹏开发套件实现Hyper Tuner性能调优(超详细)
  18. 解决myeclipse破解运行后出现的security alert:integrity check error
  19. Koa在实际的业务场景中,路由如何做分割?【文末留言送书】
  20. 串口接收数据并对数据进行处理

热门文章

  1. Linux内核与Linux操作系统的区别,[科普] Linux 的内核与 Linux 系统之间的关系
  2. Java 的内存分类
  3. SpringBoot常用注解说明
  4. Ubuntu 18.04安装软件包下载速度慢的解决方案
  5. Android开发笔记(一百六十五)利用红外发射遥控电器
  6. matlab mxarray赋值,C++中数组与MATLAB mxArray相互赋值
  7. windows 安装pip 和 pychar 安装pymysql
  8. 虚拟化学习笔记-虚拟机迁移的分类及原理
  9. ubuntu sudo apt-get update 失败 解决方法
  10. ubuntu下针对php的thrift 安装折腾记录