基础概念 jdbc(Java DataBase Connectivity)是java连接数据库操作的原生接口.JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型.作为API,JDBC为程序开发提供标准的接口,并为各个数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法.一句话概括:jdbc是所有框架操作数据库的必须要用的,由数据库厂商提供,但是为了方便java程序员调用各个数据库,各个数据库厂商都要实现jdbc接口. jpa(Java Persistenc…
序言 Spring Data JPA作为Spring Data中对于关系型数据库支持的一种框架技术,属于ORM的一种,通过得当的使用,可以大大简化开发过程中对于数据操作的复杂度. 本文档隶属于<Spring Data JPA用法与技能探究>系列的第一篇.本系列文档规划对Spring Data JPA进行全方位的使用介绍,一共分为5篇文档,如果感兴趣,欢迎关注交流. <Spring Data JPA用法与技能探究>系列涵盖内容: 开篇介绍 -- <JDBC.ORM.JPA.Sp…
[从零开始学习Spirng Boot-常见异常汇总] 事情的起源,无意当中在一个群里看到这么一句描述:"有人么?默默的问一句,现在开发用mybatis还是hibernate还是jpa"? 然后大家就进行各种回答,但是没有有质疑这句话描述的合理性,个人觉得需要清楚概念的,在这里mybatis大家肯定是没有什么疑问,我们把上面那句话更改下,方便我们抛出一些点出来,去掉mybatis修改为:"现在开发是使用hibernate还是 jpa"? 那么在这里的话,我们就要清楚h…
1.什么是JPA? JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中. JPA(Java Persistence API)是Sun官方提出的Java持久化规范.它为Java开发人员提供了一种对象/关系映射工具来管理Java应用中的关系数据. 持久化 持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘).持久化的主要应用是将内存中的对象存储在的数据库…
1.JPA是什么?以及相关概述 JPA的是 Java Persistence API 的简写,是Sun官方提出的一种ORM规范! Sun提出此规范有2个原因: 1.简化现有Java EE和Java SE应用开发工作. 2.Sun希望整合ORM技术,实现天下归一. 重点在于,JPA是一套规范,而不是具体的ORM框架. 故Hibernate.TopLink 等ORM框架 都是JPA的实现,其中Hibernate已获得Sun的兼容认证. JPA的标准的定制是hibernate作者参与定制的,所以JPA…
Spring Data JPA 是Spring基于ORM框架.JPA规范的基础上封装的一套JPA 应用框架,底层使用了Hibernate 的JPA技术实现,可使开发者用极简的代码即可实现对数据的访问和操作. 它提供了包括增删改查等在内的常用功能接口,且易于扩展!学习并使用Spring Data JPA可以极大提高开发效率! 由于微服务系统的广泛应用,服务粒度逐渐细化,多表关联查询的场景一定程度减少.单表查询和单表的数据操作正是JPA的优势. 1.标准化JPA是JCP组织发布的Java EE标准之…
1.pom依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4…
1.spring data jpa 简单介绍 jpa是用于对象持久化的API,jpa是一种规范,而其他的ORM框架(hibernate,topLink等)是其实现,所以jpa可以使用不同的实现方式,修改配置文件即可 2.所需jar包 maven引用如下: <properties> <spring-data-jpa.version>1.8.0.RELEASE</spring-data-jpa.version> </properties> <depende…
JPA is just like a helper class for providing data for Controller, has method like 'findOne', 'findAll', 'saveAndFlush', 'delete'. in repository/ShipwreckRespository.java: package hello.respository; import org.springframework.data.jpa.repository.JpaR…
执行了save()方法  sql语句也执行了,但是数据并未插入数据库中 解决方法: 是因为执行了save()方法,也执行了sql语句,但是因为使用的是 @Transactional 注解,不是手动去提交事务,所以这一条语句已经插入到数据库了,但是当前不可见. 所以最后可以采用 this.userRepository.saveAndFlush() 方法,让它及时的flush到数据库中.…