在Spring Boot中以编程方式配置DataSource


1.概述

Spring Boot使用固定算法来扫描和配置 DataSource。这使我们可以在默认情况下轻松获得完全配置的DataSource实现。

此外,Spring Boot 会按顺序自动配置闪电般快速的连接池( HikariCP, Apache Tomcat或Commons DBCP),具体取决于类路径中的哪些。

虽然Spring Boot的自动DataSource配置在大多数情况下运行良好,但有时我们需要更高级别的控制,因此我们必须设置自己的DataSource实现,因此跳过自动配置过程。

在本教程中,我们将学习如何在Spring Boot中以编程方式配置DataSourc...

阅读全文...

使用Spring数据对查询结果进行排序


1.简介

在本教程中,我们将学习如何使用Spring Data 对查询结果进行排序。

首先,我们将看一下想要查询和排序的数据的模式。

然后,我们将深入探讨如何实现Spring Data。

让我们开始吧!

2.测试数据

下面我们有一些示例数据。虽然我们在这里将它表示为一个表,但我们可以使用Spring Data支持的任何一个数据库来保存它。

我们想要回答的问题是,“谁占据了航空公司的哪个座位?”但为了使用户友好,我们希望按座位号排序。

名字 姓 座位号 吉尔 工匠 50 前夕 杰克逊 94 弗雷德 布罗格斯 22 瑞奇 博比 36 思雅 Kolisi 85

3.域...

阅读全文...

使用Spring Data JPA进行分页和排序


1.概述

当我们拥有大型数据集并且我们希望以较小的块呈现给用户时,分页通常很有用。

此外,我们经常需要在分页时按照某些标准对数据进行排序。

在本教程中,我们将学习如何使用Spring Data JPA轻松进行分页和排序。

2.初始设置

首先,假设我们有一个产品实体:

首先,假设我们有一个产品实体:

@Entity
public class Product {

    @Id
    private long id;
    private String name;
    private double price;

    // constructors, getters and s...

阅读全文...

使用JPA和Spring Data JPA限制查询结果


1.简介

在本教程中,我们将学习如何使用JPA和Spring Data JPA 限制查询结果。

首先,我们将查看要查询的表以及要重现的SQL查询。

然后我们将直接探讨如何使用JPA和Spring Data JPA实现这一目标。

让我们开始吧!

2.测试数据

下面我们将在本文中查询表格。

我们想要回答的问题是,“首先占用的座位是什么,占用者是谁?”。

名字 座位号
吉尔 工匠 50
前夕 杰克逊 94
弗雷德 布罗格斯 22
瑞奇 博比 36
思雅 Kolisi 85

3. SQL

使用SQL,我们可能会编写一个类似于下面的查询:

SELECT first...

阅读全文...

使用Spring Data JPA按日期和时间查询实体


1.简介

在这个快速教程中,我们将看到如何使用Spring Data JPA按日期查询实体。

我们将首先回忆一下如何使用JPA映射日期和时间。

然后,我们将创建一个包含日期和时间字段的实体以及一个Spring Data存储库来查询这些实体。

2.用JPA映射日期和时间

首先,我们将回顾一下有关使用JPA映射日期的一些理论。要知道的是我们需要决定是否要代表:

  • A date only
  • A time only
  • Or both

除了(optional)@Column annotation,我们还需要添加 @Temporal annotation 指定字段所代表的内容。

此注释采用一个参数,该...

阅读全文...

从Spring Boot显示Hibernate / JPA SQL语句


1.概述

Spring JDBC和JPA提供了对本机JDBC API的抽象,允许开发人员取消本机SQL查询。但是,我们经常需要查看这些自动生成的SQL查询以及执行它们的顺序以进行调试。

在本快速教程中,我们将介绍在Spring Boot中记录这些SQL查询的不同方法。

2.记录JPA查询

2.1。到标准输出

最简单的方法是将查询转储到标准输出是将以下内容添加到application.properties:

spring.jpa.show-sql=true

为了美化或漂亮地打印SQL,我们可以添加:

spring.jpa.properties.hibernate.format_sql=t...

阅读全文...

Projections and Excerpts in Spring Data REST


1.概述

在本文中 - 我们将探索Spring Data REST的投影和摘录概念。

我们将学习如何使用投影来创建模型的自定义视图以及如何将摘录用作资源集合的默认视图。

2.Our Domain Models

首先,让我们从定义我们的领域模型开始: Book and Author。

我们来看看 Book 实体类:

@Entity
public class Book {

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private long id;

    @Column(nullable = ...

阅读全文...

Spring Data JPA @Query


1.概述

Spring Data提供了许多方法来定义我们可以执行的查询。其中之一是 @Query注释。

在本教程中,我们将演示如何在Spring Data JPA中使用@Query注释来执行JPQL和本机SQL查询。

此外,我们将展示如何在@Query注释不够时构建动态查询 。

2.Select Query

为了定义要为Spring Data存储库方法执行的SQL,我们可以使用@Query注释来注释该方法 - 它的 value属性包含要执行的JPQL或SQL。

该@Query注释优先于命名查询,这些注释与@NamedQuery或在定义的orm.xml中的文件。

将查询定义放在存储...

阅读全文...

A Guide to Multitenancy in Hibernate 5


1.简介

多租户允许多个客户端或租户使用单个资源,或者在本文的上下文中使用单个数据库实例。目的是将每个租户需要的信息与共享数据库隔离开来。

在本教程中,我们将介绍在Hibernate 5中配置多租户的各种方法。

2. Maven依赖

我们需要包括在休眠核心依赖于pom.xml的文件:

<dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-core</artifactId>
   <version>5.2.12.Final&l...

阅读全文...

Lettuce简介 - Java Redis客户端


1.概述

本文介绍了Redius Java客户端Lettuce。

Redis是一个内存中的键值存储,可用作数据库,缓存或消息代理。使用对Redis内存数据结构中的键进行操作的命令添加,查询,修改和删除数据。

Lettuce支持完整Redis API的同步和异步通信使用,包括其数据结构,发布/订阅消息传递和高可用性服务器连接。

2.Why Lettuce?

我们在以前的一篇文章中介绍了Jedis 。是什么让生菜与众不同?

最重要的区别是它通过Java 8的CompletionStage接口提供异步支持,并支持Reactive Streams。正如我们将在下面看到的,Lettuce提供了一个...

阅读全文...