SpringData关键字查询实现方法详解

一、创建项目并导入Jap相关依赖

1.1

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>druid-spring-boot-starter</artifactId>
  <version>1.1.10</version>
</dependency>
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <scope>runtime</scope>
  <version>5.1.27</version>
</dependency>

1.2

Application.perteries配置

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

spring.datasource.username=root

spring.datasource.password=123

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/jpa?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=GMT

#将sql语句展示到控制台

spring.jpa.show-sql=true

spring.jpa.database=mysql

spring.jpa.database-platform=mysql

#ddl-auto:create----每次运行该程序,没有表格会新建表格,表内有数据会清空

#ddl-auto:create-drop----每次程序结束的时候会清空表

#ddl-auto:update----每次运行程序,没有表格会新建表格,表内有数据不会清空,只会更新

#ddl-auto:validate----运行程序会校验数据与数据库的字段类型是否相同,不同会报错

spring.jpa.hibernate.ddl-auto=update

#采用哪种方言

spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect

二、关键字查询

1.1

创建

@Entity

将实体类Book创建成表,默认不指定就是类名,name指定表名

@ID

主键

@GeneratedValue

自增长

1.2

创建

1.3

JAP的功能函数

在这里定义你的查询规则就ok了

1.3.1

保存

1.3.2

修改

注:如果数据库中没有该数据则是添加,存在则是修改

1.3.3

删除

1.3.4

查询太多就举例分页把

三、自定义查询

同样还是在BookDao里写

注:nativeQuery=true代表使用sql语句查询,默认使用JPA ql查询

四、自定义添加修改

BookDao类

注:@Query @Modifying @Transactional三个注解一个不能少

@Modifying

对数据库修改操作

@Transactional

事务

图片中的两种写法都可以,第一种顺序不能颠倒

@Param不是mybatis的那个这个是jpa的

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

时间: 2020-08-23

Spring Data JPA分页复合查询原理解析

Spring Data JPA是Spring Data家族的一部分,可以轻松实现基于JPA的存储库. 此模块处理对基于JPA的数据访问层的增强支持. 它使构建使用数据访问技术的Spring驱动应用程序变得更加容易. 在相当长的一段时间内,实现应用程序的数据访问层一直很麻烦. 必须编写太多样板代码来执行简单查询以及执行分页和审计. Spring Data JPA旨在通过减少实际需要的工作量来显著改善数据访问层的实现. 作为开发人员,您编写repository接口,包括自定义查找器方法,Spring

Spring data elasticsearch使用方法详解

这篇文章主要介绍了Spring data elasticsearch使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.准备 1.添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId> &l

Spring Boot 自定义数据源DruidDataSource代码

这篇文章主要介绍了Spring Boot 自定义数据源DruidDataSource代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.添加依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.26</version> </depend

Spring Data JPA进行数据分页与排序的方法

一.导读 如果一次性加载成千上万的列表数据,在网页上显示将十分的耗时,用户体验不好.所以处理较大数据查询结果展现的时候,分页查询是必不可少的.分页查询必然伴随着一定的排序规则,否则分页数据的状态很难控制,导致用户可能在不同的页看到同一条数据.那么,本文的主要内容就是给大家介绍一下,如何使用Spring Data JPA进行分页与排序. 二.实体定义 我们使用一个简单的实体定义:Article(文章) @Data @AllArgsConstructor @NoArgsConstructor @Bu

Spring Data Jpa的四种查询方式详解

这篇文章主要介绍了Spring Data Jpa的四种查询方式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.调用接口的方式 1.基本介绍 通过调用接口里的方法查询,需要我们自定义的接口继承Spring Data Jpa规定的接口 public interface UserDao extends JpaRepository<User, Integer>, JpaSpecificationExecutor<User> 使用这

Spring Data JPA带条件分页查询实现原理

最新Spring Data JPA官方参考手册 Version 2.0.0.RC2,2017-07-25 https://docs.spring.io/spring-data/jpa/docs/2.0.0.RC2/reference/html/ JPA参考手册 (找了半天, 在线版的只找到这个) https://www.objectdb.com/java/jpa Spring Data JPA的Specification类, 是按照Eric Evans的<领域驱动设计>书中Specificat

SpringBoot整合Spring Data Elasticsearch的过程详解

Spring Data Elasticsearch提供了ElasticsearchTemplate工具类,实现了POJO与elasticsearch文档之间的映射 elasticsearch本质也是存储数据,它不支持事物,但是它的速度远比数据库快得多, 可以这样来对比elasticsearch和数据库 索引(indices)--------数据库(databases) 类型(type)------------数据表(table) 文档(Document)---------------- 行(ro

Spring cloud config集成过程详解

这篇文章主要介绍了spring cloud config集成过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Spring Cloud Config 分为 Config Server: 分布式配置中心,是一个独立的微服务应用,用来连接配置服务器并为客户端提供获取配置信息 Config Client: 通过指定配置中心来管理应用资源,以及与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息 Spring boot版本2.1.8.

Springboot集成spring data elasticsearch过程详解

版本对照 各版本的文档说明:https://docs.spring.io/spring-data/elasticsearch/docs/ 1.在application.yml中添加配置 spring: data: elasticsearch: repositories: enabled: true #多实例集群扩展时需要配置以下两个参数 #cluster-name: datab-search #cluster-nodes: 127.0.0.1:9300,127.0.0.1:9301 2.添加 M

SpringBoot启动及自动装配原理过程详解

一.servlet2(老spring-mvc) 配置文件: web.xml:主要配置项目启动项 application-context.xml:主要配置项目包扫描.各种bean.事务管理 springMVC.xml:主要配置controller包扫描.视图解析器.参数解析器 启动过程: 每一个spring项目启动时都需要初始化spring-context,对于非web项目可以在程序main方法中触发这个context的初始化过程. 由于web项目的启动入口在容器,所以开发者不能直接触发sprin

SpringBoot上下文初始器加载过程详解

利用 Spring 工厂加载机制,实例化 ApplicationContextInitializer 实现类,并排序对象集合. 关键方法 private <T> Collection<T> getSpringFactoriesInstances(Class<T> type, Class<?>[] parameterTypes, Object... args) { ClassLoader classLoader = Thread.currentThread()

Spring注解配置实现过程详解

配置注解的支持: 在spring4之后,想要使用注解形式,必须得要引入 aop 的包 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>5.2.8.RELEASE</version> </dependency> 导入 context 的约束,增加注解的支持: <?

Springboot+Poi导入Excel表格实现过程详解

导入表格的主要思路就是:首先从前端页面上传文件,这里先区分一下Multipartfile和File,前者代表的是HTML中form data方式上传的文件,后者是文件系统的抽象,前者信息较少,只有二进制数据+文件名称,所以我们一般先上传的Multipartfile文件要转换成File文件我们才可以读取文件的内容.下面一步一步的讲解 Tips: 1.先生成临时文件,同时记得使用transferTo()方法把MultipartFile文件类型转成File类型: File excelFile=exce

SpringBoot整合Druid数据源过程详解

这篇文章主要介绍了SpringBoot整合Druid数据源过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.数据库结构 2.项目结构 3.pom.xml文件 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</ar

springboot整合netty过程详解

这篇文章主要介绍了springboot整合netty过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 前言 上一篇讲了netty的一个入门的demo:项目上我也把数据处理做好了,就要开始存数据库了:我用的mybatis框架,如果单独使用还是觉得比较麻烦,所以就用了springboot+mybatis+netty:本篇主要讲netty与springboot的整合,以及我在这个过程中遇到的问题,又是怎么去解决的: 正文 我在做springbo