在本教程中,了解如何构建与 HarperDB(一个强大的高性能数据库)集成的基于 Quarkus 的微服务 API。
在不断发展的数据库技术领域,保持领先地位不仅是一种选择,而且是一种必然。随着现代应用程序的复杂性和全球影响力不断增长,底层数据库的作用变得越来越重要。它是支持应用程序无缝运行以及大量数据存储和检索的支柱。在这个全球规模应用的时代,拥有一个高性能、灵活、高效的数据库至关重要。
随着现代应用程序的需求激增,对能够跟上步伐的数据库的需求从未如此强烈。“超级数据库”已成为确保应用程序在全球无缝、高效运行的关键角色。这些数据库需要提供速度、多功能性和适应性的独特组合,以满足从电子商务平台到物联网系统的各种应用程序的不同需求。
它们需要的不仅仅是数据存储库。它们必须充当智能中心,能够快速处理、存储和提供数据,同时促进实时分析、安全性和可扩展性。理想的超级数据库不仅仅是一个存储设施;而是一个存储设施。它是一个驱动动态、数据驱动的应用程序的引擎,这些应用程序定义了现代数字景观。
最新版本的HarperDB 4.2引入了企业应用程序的统一开发架构,提供了构建全球规模应用程序的方法。
HarperDB 4.2
HarperDB 4.2 是一个全面的解决方案,它将超高速数据库、用户可编程应用程序和数据流无缝地结合到一个紧密结合的技术中。其结果是一个简化复杂、加速缓慢并降低成本的开发环境。HarperDB 4.2 提供了一个统一的平台,使开发人员能够创建可以跨越全球的应用程序,轻松快速地处理数据。
在本教程中,我们将探索 HarperDB 4.2 的功能,并向您展示如何结合 Java Quarkus来利用其强大功能。我们将引导您完成利用 HarperDB 的新功能与 Quarkus 构建健壮且高性能的应用程序的步骤,展示这种统一开发架构的巨大潜力。因此,加入我们这个启发性的旅程,彻底改变您的应用程序开发流程。
使用 HarperDB 创建 Quarkus 微服务 API,第 1 部分:设置环境
本部分将指导您配置开发环境并创建必要的项目设置以开始使用。
步骤一:配置环境
在深入开发之前,您需要设置环境。我们将首先在Docker 容器中运行 HarperDB 。
为此,请打开终端并运行以下命令:
docker run -d -e HDB_ADMIN_USERNAME=root -e HDB_ADMIN_PASSWORD=password -e HTTP_THREADS=4 -p 9925:9925 -p 9926:9926 harperdb/harperdb
此命令下载并运行具有指定配置的 HarperDB Docker 容器。它公开了通信所需的端口。
第 2 步:创建架构和表
HarperDB 启动并运行后,下一步是创建模式并定义表来存储动物数据。我们将使用“curl”命令与 HarperDB 的RESTful API进行交互。
“dev”通过执行以下命令创建一个命名的架构:
curl --location --request POST 'http://localhost:9925/' \ --header 'Authorization: Basic cm9vdDpwYXNzd29yZA==' \ --header 'Content-Type: application/json' \ --data-raw '{ "operation": "create_schema", "schema": "dev" }
此命令发送 POST 请求来创建“dev”架构。
接下来,使用以下命令创建一个名为“animal”with作为哈希属性的表:“scientificName”
curl --location 'http://localhost:9925' \ --header 'Authorization: Basic cm9vdDpwYXNzd29yZA==' \ --header 'Content-Type: application/json' \ --data '{ "operation": "create_table", "schema": "dev", "table": "animal", "hash_attribute": "scientificName" }'
该命令在“dev”模式中建立“animal”表。
现在,通过创建“name”、“genus”和“species”属性来添加“animal”表所需的属性:
curl --location 'http://localhost:9925' \ --header 'Authorization: Basic cm9vdDpwYXNzd29yZA==' \ --header 'Content-Type: application/json' \ --data '{ "operation": "create_attribute", "schema": "dev", "table": "animal", "attribute": "name" }' curl --location 'http://localhost:9925' \ --header 'Authorization: Basic cm9vdDpwYXNzd29yZA==' \ --header 'Content-Type: application/json' \ --data '{ "operation": "create_attribute", "schema": "dev", "table": "animal", "attribute": "genus" }' curl --location 'http://localhost:9925' \ --header 'Authorization: Basic cm9vdDpwYXNzd29yZA==' \ --header 'Content-Type: application/json' \ --data '{ "operation": "create_attribute", "schema": "dev", "table": "animal", "attribute": "species" }'
这些命令将“name”、“genus”和“species”属性添加到架构“animal”内的表中“dev”。
配置 HarperDB 并设置架构和表后,您可以开始构建基于 Quarkus 的微服务 API 来管理动物数据。请继续关注本教程的下一部分,我们将深入探讨开发过程。
构建 Quarkus 应用程序
我们配置了HarperDB并准备了环境。现在,我们将开始构建 Quarkus 应用程序来管理动物数据。Quarkus 通过方便的项目生成器使这一切变得简单,所以让我们开始吧。
Quarkus 提供了一个直观的基于 Web 的项目生成器,可以简化初始设置。访问Quarkus Project Generator,并按照以下步骤操作:
选择您的项目所需的扩展。为本教程添加“JAX-RS”和“JSON”以处理 REST 端点和 JSON 序列化。
单击“生成您的应用程序”按钮。
下载生成的 ZIP 文件并将其解压到您所需的项目目录。
生成 Quarkus 项目后,您就可以继续前进了。
我们的项目将使用DataFaker 库和 HarperDB Java 驱动程序来生成动物数据以与 HarperDB 数据库交互。要包含HarperDB Java 驱动程序,请阅读上一篇文章。
在您的 Quarkus 项目中,创建一条 Java 记录来表示Animal实体。该记录将包含学名、名称、属和物种字段,使您能够有效地处理动物数据。
public record Animal(String scientificName, String name, String genus, String species) { public static Animal of(Faker faker) { var animal = faker.animal(); return new Animal( animal.scientificName(), animal.name(), animal.genus(), animal.species() ); } }
该记录包括一个工厂方法 ,of它Animal使用 DataFaker 库生成带有随机数据的实例。我们将使用此方法用动物记录填充我们的数据库。
在您的 Quarkus 项目中,我们将设置 CDI(上下文和依赖注入)来处理数据库连接和数据访问。以下是如何创建管理数据库连接的类的示例ConnectionSupplier:
@ApplicationScoped public class ConnectionSupplier { private static final Logger LOGGER = Logger.getLogger(ConnectionSupplier.class.getName()); @Produces @RequestScoped public Connection get() throws SQLException { LOGGER.info("Creating connection"); // Create and return the database connection, e.g., using DriverManager.getConnection } public void dispose(@Disposes Connection connection) throws SQLException { LOGGER.info("Closing connection"); connection.close(); } }
该类ConnectionSupplier使用 CDI 注释来生成和处理数据库连接。这允许 Quarkus 为您管理数据库连接生命周期。
让我们创建一个AnimalDAO类来使用 JDBC 与数据库交互。此类将具有插入和查询动物数据的方法。
@ApplicationScoped public class AnimalDAO { private final Connection connection; public AnimalDAO(Connection connection) { this.connection = connection; } public void insert(Animal animal) { try { // Prepare and execute the SQL INSERT statement to insert the animal data } catch (SQLException exception) { throw new RuntimeException(exception); } } public Optional<Animal> findById(String id) { try { // Prepare and execute the SQL SELECT statement to find an animal by ID } catch (SQLException exception) { throw new RuntimeException(exception); } } // Other methods for data retrieval and manipulation }
在AnimalDAO课程中,您将使用JDBC执行数据库操作。您可以添加更多方法来处理各种数据库任务,例如更新和删除动物记录。
该AnimalService课程将生成动物数据并利用其AnimalDAO进行数据库交互。
@ApplicationScoped public class AnimalService { private final Faker faker; private final AnimalDAO dao; @Inject public AnimalService(Faker faker, AnimalDAO dao) { this.faker = faker; this.dao = dao; } // Implement methods for generating and managing animal data }
在 中AnimalService,您将使用 DataFaker 库生成随机动物数据,并使用 AnimalDAO 进行数据库操作。
这些组件就位后,您就为使用 HarperDB 的基于 Quarkus 的微服务 API 奠定了基础。在本教程的下一部分中,我们将深入开发 RESTful 端点和数据管理。
创建 AnimalResource 类
在本教程的最后部分,我们将创建一个AnimalResource类来通过 HTTP 端点公开我们的动物服务。此外,我们将提供示例curl命令来演示如何在本地使用这些端点。
创建一个AnimalResource具有 RESTful 端点的类来管理动物数据。此类将与 进行交互AnimalService以处理 HTTP 请求和响应。
@Path("/animals") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) public class AnimalResource { private final AnimalService service; public AnimalResource(AnimalService service) { this.service = service; } @GET public List<Animal> findAll() { return this.service.findAll(); } @POST public Animal insert(Animal animal) { this.service.insert(animal); return animal; } @DELETE @Path("{id}") public void delete(@PathParam("id") String id) { this.service.delete(id); } @POST @Path("/generate") public void generateRandom() { this.service.generateRandom(); } }
在此类中,我们定义了几个 RESTful 端点,包括:
GET /animals:返回所有动物的列表。
POST /animals:插入新动物。
DELETE /animals/{id}:通过动物 ID 删除动物。
POST /animals/generate:生成随机动物数据。
以下是curl使用 http://localhost:8080/animals/ 作为基本 URL 在本地测试 HTTP 端点的命令:
取回所有动物 (GET)
curl -X GET http://localhost:8080/animals/
插入新动物(POST)
curl -X POST -H "Content-Type: application/json" -d '{ "scientificName": "Panthera leo", "name": "Lion", "genus": "Panthera", "species": "Leo" }' http://localhost:8080/animals/
按 ID 删除动物 (DELETE )
替换{id}为您要删除的动物的 ID:
curl -X DELETE http://localhost:8080/animals/{id}
生成随机动物数据 (POST)
此端点不需要任何请求数据:
curl -X POST http://localhost:8080/animals/generate
这些curl命令允许您与基于 Quarkus 的微服务 API 交互,执行检索、插入和删除动物数据等操作。生成的随机数据端点对于使用测试数据填充数据库非常有价值。
借助这些 RESTful 端点,您可以拥有与 HarperDB 集成的功能齐全的 Quarkus 应用程序,以通过 HTTP 管理动物数据。您可以进一步扩展和增强此应用程序以满足您的特定要求。恭喜您完成本教程!
结论
在本教程中,我们踏上了构建与 HarperDB(一个强大的高性能数据库)集成的基于 Quarkus 的微服务 API 的旅程。我们首先设置环境并创建一个具有必要扩展的 Quarkus 项目。利用 DataFaker 库,我们生成随机动物数据来填充我们的 HarperDB 数据库。
我们应用程序的核心是与 HarperDB 的无缝集成,展示了 HarperDB Java 驱动程序的功能。我们使用 CDI 来有效地管理数据库连接,并使用该类创建了结构化数据访问层AnimalDAO。通过它,我们执行了数据库操作,例如插入和查询动物数据。
通过该课程的实施AnimalService,我们将生成的数据与数据库操作结合起来,使我们的动物数据管理变得栩栩如生。最后,我们通过类中的 RESTful 端点公开我们的动物服务AnimalResource,允许我们通过 HTTP 请求与服务交互。
您可以在GitHub上探索该项目的完整源代码。(github.com/o-s-expert/harperdb-samples/tree/main/02-hello-world-quarkus)请随意分叉、修改和扩展它以满足您的需求。
当您继续进入 HarperDB 和 Quarkus 的世界时,请记得查阅HarperDB 文档中提供的全面的 HarperDB 文档,以更深入地了解 HarperDB 的功能和特性。
在 HarperDB 官方网站上随时了解最新更新、发行说明和新闻,以确保您始终使用最新信息。查看最新的发行说明,了解 HarperDB 中的新增功能和改进内容。文章来源:https://www.toymoban.com/diary/java/501.html
通过结合 Quarkus 和 HarperDB,您可以构建高效且可扩展的应用程序,以满足现代数字环境的需求。快乐编码!文章来源地址https://www.toymoban.com/diary/java/501.html
到此这篇关于利用 Quarkus 和 HarperDB 的强大功能进行高效的数据管理的文章就介绍到这了,更多相关内容可以在右上角搜索或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!