JNOSQL / demos-se

The Eclipse JNoSQL is a framework whose has the goal to help Java developers to create Jakarta EE applications with NoSQL
Other
35 stars 19 forks source link

= JNoSQL examples code :toc: auto

== Introduction

Java SE sample using NoSQL with Jakarta NoSQL.

This project contains several projects with the primary goal of exploring the Jakarta NoSQL on several databases.

=== ArangoDB

image::http://www.jnosql.org/img/logos/ArangoDB.png[ArangoDB, width=200px]

ArangoDB: ArangoDB is a native multi-model database system developed by triAGENS GmbH. The database system supports three important data models (key/value, documents, graphs) with one database core and a unified query language AQL (ArangoDB Query Language). The query language is declarative and allows the combination of different data access patterns in a single query. ArangoDB is a NoSQL database system but AQL is similar in many ways to SQL.

==== How to install with Docker

image::https://d1q6f0aelx0por.cloudfront.net/product-logos/library-docker-logo.png[]

  1. Install docker: https://www.docker.com/
  2. https://hub.docker.com/_/arangodb
  3. Run docker command:

[source, bash]

docker run -e ARANGO_NO_AUTH=1 -d --name arangodb-instance -p 8529:8529 -d arangodb/arangodb

==== Projects

=== MongoDB

image::http://www.jnosql.org/img/logos/mongodb.png[MongoDB, width=200px]

Mongodb: MongoDB is a free and open-source cross-platform document-oriented database program. Classified as a NoSQL database program, MongoDB uses JSON-like documents with schemas.

==== How to install with Docker

image::https://d1q6f0aelx0por.cloudfront.net/product-logos/library-docker-logo.png[]

  1. Install docker: https://www.docker.com/
  2. https://hub.docker.com/_/mongo
  3. Run docker command:

[source, bash]

docker run -d --name mongodb-instance -p 27017:27017 mongo

==== Projects

=== Oracle NoSQL

image::http://www.jnosql.org/img/logos/oracle.png[Oracle NoSQL, width=200px]

Oracle NoSQL: Oracle NoSQL Database is a NoSQL-type distributed key-value and document database from Oracle Corporation. It provides transactional semantics for data manipulation, horizontal scalability, and simple administration and monitoring.

==== How to install with Docker

image::https://d1q6f0aelx0por.cloudfront.net/product-logos/library-docker-logo.png[]

  1. Install docker: https://www.docker.com/
  2. Run docker command:

[source, bash]

docker run -d --name oracle-instance -p 8080:8080 ghcr.io/oracle/nosql:latest-ce

==== Projects

=== CouchDB

image::https://www.jnosql.org/img/logos/couchdb.png[Couchbase, width=200px]

Apache CouchDB is an open-source document-oriented NoSQL database, implemented in Erlang. CouchDB uses multiple formats and protocols to store, transfer, and process its data. It uses JSON to store data, JavaScript as its query language using MapReduce, and HTTP for an API.

==== How to install with Docker

image::https://d1q6f0aelx0por.cloudfront.net/product-logos/library-docker-logo.png[]

  1. Install docker: https://www.docker.com/
  2. https://hub.docker.com/_/couchdb
  3. Run docker command:

[source, bash]

docker run -p 5984:5984 -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=password -d couchdb

  1. Follow the instructions: https://hub.docker.com/_/couchdb
  2. Create heroes as bucket name
  3. Create Hero and Villain as collections
  4. Create primary query to Hero

==== Projects

=== Couchbase

image::http://www.jnosql.org/img/logos/couchbase.svg[CouchDB, width=200px]

Couchbase Server, originally known as Membase, is an open-source, distributed multi-model NoSQL document-oriented database software package optimized for interactive applications. These applications may serve many concurrent users by creating, storing, retrieving, aggregating, manipulating and presenting data.

==== How to install with Docker

image::https://d1q6f0aelx0por.cloudfront.net/product-logos/library-docker-logo.png[]

  1. Install docker: https://www.docker.com/
  2. https://hub.docker.com/r/couchbase/server/
  3. Run docker command:

[source, bash]

docker run -d --name db -p 8091-8097:8091-8097 -p 9123:9123 -p 11207:11207 -p 11210:11210 -p 11280:11280 -p 18091-18097:18091-18097 couchbase

  1. Access: http://localhost:8091/ui/index.html
  2. Select the option "Setup New Cluster"
  3. Define "root" as Admin username
  4. Define "123456" as Password
  5. Define "localhost" as Cluster Name
  6. Accept the terms and conditions
  7. Go to "Buckets" session
  8. Create Bucket "heroes" using the "Add Bucket" Option
  9. Click at "heroes"
  10. Add "Hero" and "Villain" as Collection
  11. Go to Query session and execute: [source]

    CREATE PRIMARY INDEX #primary ON heroes._default.Hero

==== Projects

=== Elastisearch

image::https://www.jnosql.org/img/logos/elastic.svg[ES, width=200px]

Elasticsearch is a search engine based on the Lucene library. It provides a distributed, multitenant-capable full-text search engine with an HTTP web interface and schema-free JSON documents.

==== How to install with Docker

image::https://d1q6f0aelx0por.cloudfront.net/product-logos/library-docker-logo.png[]

  1. Install docker: https://www.docker.com/
  2. https://hub.docker.com/_/elasticsearch
  3. Run docker command:

[source, bash]

docker run -p 9200:9200 -p 9300:9300 \ -e "ES_JAVA_OPTS=-Xms1g -Xmx1g" \ -e "xpack.security.enabled=false" \ -e "discovery.type=single-node" \ elasticsearch:8.7.1

==== Projects

=== Cassandra

image::http://www.jnosql.org/img/logos/cassandra.png[Cassandra, width=200px]

Cassandra: Apache Cassandra is a free and open-source distributed database management system designed to handle large amounts of data across many commodity servers, providing high availability with no single point of failure.

==== How to install with Docker

image::https://d1q6f0aelx0por.cloudfront.net/product-logos/library-docker-logo.png[]

  1. Install docker: https://www.docker.com/
  2. https://hub.docker.com/_/cassandra
  3. Run docker command:

[source, bash]

docker run -d --name casandra-instance -p 9042:9042 cassandra

==== Projects

=== Scylla

image::https://www.jnosql.org/img/logos/scylla.svg[ScyllaDB, width=200px]

ScyllaDB is an open-source distributed NoSQL wide-column data store. It was designed to be compatible with Apache Cassandra while achieving significantly higher throughputs and lower latencies.

==== How to install with Docker

image::https://d1q6f0aelx0por.cloudfront.net/product-logos/library-docker-logo.png[]

  1. Install docker: https://www.docker.com/
  2. https://hub.docker.com/r/scylladb/scylla
  3. Run docker command:

[source, bash]

docker run -d --name scylladb-instance -p 9042:9042 scylladb/scylla

==== Projects

=== Redis

image::https://www.jnosql.org/img/logos/redis.png[Redis, width=200px]

Redis is an in-memory data structure store, used as a distributed, in-memory key–value database, cache and message broker, with optional durability. Redis supports different kinds of abstract data structures, such as strings, lists, maps, sets, sorted sets, HyperLogLogs, bitmaps, streams, and spatial indices.

==== How to install with Docker

image::https://d1q6f0aelx0por.cloudfront.net/product-logos/library-docker-logo.png[]

  1. Install docker: https://www.docker.com/
  2. https://hub.docker.com/_/redis
  3. Run docker command:

[source, bash]

docker run --name redis-instance -p 6379:6379 -d redis

==== Projects

=== Hazelcast

image::http://www.jnosql.org/img/logos/hazelcast.svg[Hazelcast, width=200px]

Hazelcast:In computing, Hazelcast is an open source in-memory data grid based on Java.

==== Projects

=== Memcached

image::https://www.jnosql.org/img/logos/memcached.png[Memcached, width=200px]

Memcached is a general-purpose distributed memory-caching system. It is often used to speed up dynamic database-driven websites by caching data and objects in RAM to reduce the number of times an external data source must be read. Memcached is free and open-source software, licensed under the Revised BSD license.

==== How to install with Docker

image::https://d1q6f0aelx0por.cloudfront.net/product-logos/library-docker-logo.png[]

  1. Install docker: https://www.docker.com/
  2. https://hub.docker.com/_/memcached
  3. Run docker command:

[source, bash]

docker run -d --name memcached-instance -p 11211:11211 memcached:latest

==== Projects

=== Neo4J

image::https://www.jnosql.org/img/logos/neo4j.png[Neo4J, width=200px]

Neo4j is a graph database management system developed by Neo4j, Inc. The data elements Neo4j stores are nodes, edges connecting them, and attributes of nodes and edges.

==== How to install with Docker

image::https://d1q6f0aelx0por.cloudfront.net/product-logos/library-docker-logo.png[]

  1. Install docker: https://www.docker.com/
  2. https://hub.docker.com/_/neo4j
  3. Run docker command:

[source, bash]

docker run --publish=7474:7474 --publish=7687:7687 --env NEO4J_AUTH=neo4j/admin123 neo4j

==== Projects

===== BookApp

Library recommendation, category based that shows the software categories, the software books and also a book that is Software and Java.

image::neo4j/Book.png[]

===== MarketingApp

The marketing campaign that needs to match from some rules relationship based with four people.

image::neo4j/Marketing.png[]

===== TravelApp

Given cities and travelers, this TravelApp will return the most famous city, the person who most travel and also some friends suggestion placed by the visited cities.

image::neo4j/Travel.png[]

=== JanusGraph

image::https://www.jnosql.org/img/logos/janusgraph.png[JanusGraph, width=200px]

JanusGraph is an open source, distributed graph database under The Linux Foundation. JanusGraph is available under the Apache License 2.0. The project is supported by IBM, Google, Hortonworks and Grakn Labs. JanusGraph supports various storage backends.

==== Projects

===== BookApp

Library recommendation, category based that shows the software categories, the software books, and also a book that is Software and Java.

image::janus-graph/Book.png[]

===== MarketingApp

The marketing campaign that needs to match from some rules relationship based with four people.

image::janus-graph/Marketing.png[]

===== TravelApp

Given cities and travelers, this TravelApp will return the most famous city, the person who most travel and also some friends suggestion placed by the visited cities.

image::janus-graph/Travel.png[]

===== TheGodsApp

The graph of Gods JanusGraph based

image::janus-graph/graph-of-the-gods.png[]