这篇文章分享自国内优秀IT教育机构——【优锐课】。我们将讨论如何使用新规范Jakarta NoSQL在Jakarta EE上进行分页。
分页是将内容分成离散页面的过程。每个页面都有来自数据库的实体列表。分页允许从数据存储中检索大量元素到小块中,例如,它返回十页包含一百个项目,而不是在存储引擎中返回一千个。这篇文章将讨论如何使用新规范Jakarta NoSQL在Jakarta EE上进行分页。
这篇文章将结合使用MongoDB和Car实体来演示如何在Jakarta NoSQL API上进行分页。
服务器启动时,MongoDB数据库必须正在运行,因此你可以手动下载并安装它,也可以使用Docker映像,然后运行以下命令:
docker run -d --name mongodb-instance -p 27017:27017 mongodb
该项目是一个Java SE项目,具有通过maven运行的CDI 2.0和Jakarta NoSQL。因此,所有配置和依赖项都是pom.xml文件。Jakarta NoSQL项目已获得批准,但不是最终版本。因此,该示例使用SNAPSHOT版本。
<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.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<name>Artemis Demo using Java SE MongoDB with pagiantion</name>
<groupId>org.jnosql.artemis</groupId>
<artifactId>pagination</artifactId>
<version>0.1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.jnosql.artemis</groupId>
<artifactId>artemis-document</artifactId>
<version>${
project.version}</version>
</dependency>
<dependency>
<groupId>org.jnosql.diana</groupId>
<artifactId>mongodb-driver</artifactId>
<version>${
project.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.weld.se</groupId>
<artifactId>weld-se-shaded</artifactId>
<version>${
weld.se.core.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse</groupId>
<artifactId>yasson</artifactId>
<version>${
json.b.version}</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>oss.sonatype.org-snapshot</id>
<url>http://oss.sonatype.org/content/repositories/snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</project>
Car 实体具有五个属性:id,provider,model,year和color。
import jakarta.nosql.mapping.Column;
import jakarta.nosql.mapping.Entity;
import jakarta.nosql.mapping.Id;
@Entity
public class Car {
@Id
private Long id;
@Column
private String provider;
@Column
private String model;
@Column
private Integer year;
@Column
private String color;
@Override
public String toString() {
return "Car{" +
"id=" + id +
", provider='" + provider + '\'' +
", model='" + model + '\'' +
", year=" + year +
", color='"