All Projects → oracle → soda-for-java

oracle / soda-for-java

Licence: other
SODA (Simple Oracle Document Access) for Java is an Oracle library for writing Java apps that work with JSON (and not only JSON!) in the Oracle Database. SODA allows your Java app to use the Oracle Database as a NoSQL document store.

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to soda-for-java

Ardb
A redis protocol compatible nosql, it support multiple storage engines as backend like Google's LevelDB, Facebook's RocksDB, OpenLDAP's LMDB, PerconaFT, WiredTiger, ForestDB.
Stars: ✭ 1,707 (+2698.36%)
Mutual labels:  nosql, persistence, nosql-database
Tupl
The Unnamed Persistence Library
Stars: ✭ 83 (+36.07%)
Mutual labels:  nosql, persistence
Nano Sql
Universal database layer for the client, server & mobile devices. It's like Lego for databases.
Stars: ✭ 717 (+1075.41%)
Mutual labels:  nosql, persistence
Helicalinsight
Helical Insight software is world’s first Open Source Business Intelligence framework which helps you to make sense out of your data and make well informed decisions.
Stars: ✭ 214 (+250.82%)
Mutual labels:  nosql, oracle-database
skytable
Skytable is an extremely fast, secure and reliable real-time NoSQL database with automated snapshots and TLS
Stars: ✭ 696 (+1040.98%)
Mutual labels:  nosql, nosql-database
AbacusUtil
Release the power in Java programming
Stars: ✭ 77 (+26.23%)
Mutual labels:  nosql, jdbc
Stampede
The ToroDB solution to provide better analytics on top of MongoDB and make it easier to migrate from MongoDB to SQL
Stars: ✭ 1,754 (+2775.41%)
Mutual labels:  nosql, nosql-database
Noodle
Simple object storage for Android
Stars: ✭ 55 (-9.84%)
Mutual labels:  nosql, persistence
maricutodb
PHP Flat File Database Manager
Stars: ✭ 23 (-62.3%)
Mutual labels:  crud, nosql
Rest Hapi
🚀 A RESTful API generator for Node.js
Stars: ✭ 1,102 (+1706.56%)
Mutual labels:  crud, nosql
MongoDB-University
Repo for All MongoDB University Courses
Stars: ✭ 102 (+67.21%)
Mutual labels:  nosql, nosql-database
pickledb-rs
PickleDB-rs is a lightweight and simple key-value store. It is a Rust version for Python's PickleDB
Stars: ✭ 116 (+90.16%)
Mutual labels:  nosql, nosql-database
cosmosdb-materialized-views
A full sample that shows how to implement real-time updated Materalized Views with CosmosDB, Change Feed and Azure Functions
Stars: ✭ 20 (-67.21%)
Mutual labels:  nosql, no-sql
pocket-db
🎒 A pocket-sized Node.js, NoSQL database.
Stars: ✭ 15 (-75.41%)
Mutual labels:  nosql, nosql-database
location-api-sl
This API can be use to all developers to get location details of Sri Lanka 🇱🇰 including major cities, sub areas, districts and Provinces. ⛳️
Stars: ✭ 35 (-42.62%)
Mutual labels:  nosql, nosql-database
AloeDB
Light, Embeddable, NoSQL database for Deno 🦕
Stars: ✭ 111 (+81.97%)
Mutual labels:  nosql, nosql-database
Hibernate Springboot
Collection of best practices for Java persistence performance in Spring Boot applications
Stars: ✭ 589 (+865.57%)
Mutual labels:  jdbc, persistence
Lychee
The most complete and powerful data-binding library and persistence infra for Kotlin 1.3, Android & Splitties Views DSL, JavaFX & TornadoFX, JSON, JDBC & SQLite, SharedPreferences.
Stars: ✭ 102 (+67.21%)
Mutual labels:  jdbc, persistence
Data
ATK Data - Data Access Framework for high-latency databases (Cloud SQL/NoSQL).
Stars: ✭ 243 (+298.36%)
Mutual labels:  nosql, persistence
simpledbm
SimpleDBM is an Open Source Multi-Threaded Embeddable Transactional Database Engine in Java.
Stars: ✭ 51 (-16.39%)
Mutual labels:  nosql, nosql-database

SODA 1.1.7

Simple Oracle Document Access (SODA) is an API which allows you to use the Oracle Database as a NoSQL JSON document store. Although SODA is particularly powerful when it comes to JSON data, data of any other type is supported as well.

With the SODA architecture, your data is stored as documents, and documents are organized into collections. Each document contains the actual data, as well as additional information automatically maintained by SODA, such as unique key, last-modified timestamp, version, type, etc. SODA lets you create and store such collections of documents in the Oracle Database, and perform create, retrive, update, and delete (CRUD) operations on these documents, without needing to know Structured Query Language (SQL), or JDBC, or how the data is stored in the database. Essentially SODA provides a virtual NoSQL document store on top of your Oracle Database. Under the covers, a collection is stored as a regular Oracle Database table, and each document is stored as a row in the table. SQL access to the table using standard tools is still allowed.

SODA for Java supports:

  • CRUD operations on documents containing data of any type using unique document keys
  • CRUD operations on documents containing JSON data using QBEs (simple pattern-like queries-by-example expressed in JSON), or unique document keys
  • Bulk read/write operations
  • Optimistic and pessimistic locking
  • Transactions
  • Document collections backed by Oracle Database tables or views
  • Mapping of existing Oracle Database tables or views as document collections

SODA for Java is stable, well-documented, and has a comprehensive test suite. We are actively working on adding new features as well.

SODA for Java is built on top of native JSON support in the Oracle Database.

This is an open source project maintained by Oracle Corp.

See the Oracle as a Document Store page on the Oracle Technology Network for more info.

Getting started

To obtain the latest SODA jar and its dependencies, use these Maven coordinates:

Group id: com.oracle.database.soda
Artifact id: orajsoda
Version: 1.1.7.1

Note: there was an issue with 1.1.7 SODA release on Maven Central - an incorrect version for the javax.json dependency was stated in the SODA POM. This is fixed in the 1.1.7.1 SODA patch release on Maven Central, so please use 1.1.7.1 as the release version.

The following short code snippet illustrates working with SODA. It shows how to create a document collection, insert a document into it, and query the collection by using a unique document key and a QBE (query-by-example).

// Get an OracleRDBMSClient - starting point of SODA for Java application.
OracleRDBMSClient cl = new OracleRDBMSClient();

// Get a database.
OracleDatabase db = cl.getDatabase(conn);

// Create a collection with the name "MyJSONCollection".
OracleCollection col = db.admin().createCollection("MyJSONCollection");

// Create a JSON document.
OracleDocument doc =
  db.createDocumentFromString("{ \"name\" : \"Alexander\" }");

// Insert the document into a collection, and get back its
// auto-generated key.
String k = col.insertAndGet(doc).getKey();

// Find a document by its key. The following line
// fetches the inserted document from the collection
// by its unique key, and prints out the document's content
System.out.println ("Inserted content:" + 
                    col.find().key(k).getOne().getContentAsString());
                    
// Find all documents in the collection matching a query-by-example (QBE).
// The following lines find all JSON documents in the collection that have 
// a field "name" that starts with "A".
OracleDocument f = db.createDocumentFromString("{\"name\" : { \"$startsWith\" : \"A\" }}");
                       
OracleCursor c = col.find().filter(f).getCursor();

while (c.hasNext())
{
    // Get the next document.
    OracleDocument resultDoc = c.next();

    // Print the document key and content.
    System.out.println ("Key:         " + resultDoc.getKey());
    System.out.println ("Content:     " + resultDoc.getContentAsString());
}

Note that there's no SQL or JDBC programming required. Under the covers, SODA for Java transparently converts operations on document collections into SQL and executes it over JDBC.

See Getting Started with SODA for Java for a complete introductory example.

Documentation

  • Introduction to SODA. This book covers subjects common to all SODA impls, such as QBEs and indexing.
  • SODA Java documentation is located here.

The Javadoc is located here.

Build

SODA for Java source code is built with Ant and (optionally) Ivy. See Building the source code for details.

SODA for Java comes with a testsuite, built with JUnit and driven by Ant. See Building and running the tests for details.

Contributions

SODA is an open source project. See Contributing for details.

Oracle gratefully acknowledges the contributions to SODA made by the community

Getting in touch

Please open an issue here, or post to the ORDS, SODA, and JSON in the database forum with SODA-FOR-JAVA in the subject line.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].