{"id":18554227,"url":"https://github.com/oracle/soda-for-java","last_synced_at":"2025-04-05T22:08:56.940Z","repository":{"id":66212453,"uuid":"43759528","full_name":"oracle/soda-for-java","owner":"oracle","description":"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.","archived":false,"fork":false,"pushed_at":"2025-01-28T20:27:40.000Z","size":20032,"stargazers_count":67,"open_issues_count":12,"forks_count":23,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-03-29T21:07:32.361Z","etag":null,"topics":["crud","fulltext-search","java","jdbc","json","json-data","no-sql","nosql","nosql-database","oracle-database","persistence","rest","soda","sql","text-search"],"latest_commit_sha":null,"homepage":"http://www.oracle.com/technetwork/database/application-development/oracle-document-store/index.html","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oracle.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-10-06T15:27:19.000Z","updated_at":"2025-01-28T20:27:31.000Z","dependencies_parsed_at":"2024-11-05T05:17:53.302Z","dependency_job_id":"af4a37de-b3af-4912-948f-2ee788717783","html_url":"https://github.com/oracle/soda-for-java","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oracle%2Fsoda-for-java","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oracle%2Fsoda-for-java/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oracle%2Fsoda-for-java/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oracle%2Fsoda-for-java/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oracle","download_url":"https://codeload.github.com/oracle/soda-for-java/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247406091,"owners_count":20933803,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["crud","fulltext-search","java","jdbc","json","json-data","no-sql","nosql","nosql-database","oracle-database","persistence","rest","soda","sql","text-search"],"created_at":"2024-11-06T21:20:20.783Z","updated_at":"2025-04-05T22:08:56.924Z","avatar_url":"https://github.com/oracle.png","language":"Java","readme":"# SODA 1.1.29\nSimple 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.\n\nWith 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. \n\nSODA for Java supports:\n\n* CRUD operations on documents containing data of any type using unique document keys\n* CRUD operations on documents containing JSON data using QBEs (simple pattern-like queries-by-example expressed in JSON), or unique document keys\n* Bulk read/write operations\n* Optimistic and pessimistic locking\n* Transactions\n* Document collections backed by Oracle Database tables or views\n* Mapping of existing Oracle Database tables or views as document collections\n\nSODA for Java is stable, well-documented, and has a comprehensive test suite. We are actively working on adding new features as well.\n\nSODA for Java is built on top of native JSON support in the Oracle Database.\n\n**This is an open source project maintained by Oracle Corp.**\n\nSee the [Oracle as a Document Store](http://www.oracle.com/technetwork/database/application-development/oracle-document-store/index.html) page on the Oracle Technology Network for more info.\n\n### Getting started\n\nTo obtain the latest SODA jar and its dependencies, use these Maven coordinates:\n\n**Group id:** com.oracle.database.soda  \n**Artifact id:** orajsoda  \n**Version:** 1.1.29\n\nThe 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).\n\n```java        \n// Get an OracleRDBMSClient - starting point of SODA for Java application.\nOracleRDBMSClient cl = new OracleRDBMSClient();\n\n// Get a database.\nOracleDatabase db = cl.getDatabase(conn);\n\n// Create a collection with the name \"MyJSONCollection\".\nOracleCollection col = db.admin().createCollection(\"MyJSONCollection\");\n\n// Create a JSON document.\nOracleDocument doc =\n  db.createDocumentFromString(\"{ \\\"name\\\" : \\\"Alexander\\\" }\");\n\n// Insert the document into a collection, and get back its\n// auto-generated key.\nString k = col.insertAndGet(doc).getKey();\n\n// Find a document by its key. The following line\n// fetches the inserted document from the collection\n// by its unique key, and prints out the document's content\nSystem.out.println (\"Inserted content:\" + \n                    col.find().key(k).getOne().getContentAsString());\n                    \n// Find all documents in the collection matching a query-by-example (QBE).\n// The following lines find all JSON documents in the collection that have \n// a field \"name\" that starts with \"A\".\nOracleDocument f = db.createDocumentFromString(\"{\\\"name\\\" : { \\\"$startsWith\\\" : \\\"A\\\" }}\");\n                       \nOracleCursor c = col.find().filter(f).getCursor();\n\nwhile (c.hasNext())\n{\n    // Get the next document.\n    OracleDocument resultDoc = c.next();\n\n    // Print the document key and content.\n    System.out.println (\"Key:         \" + resultDoc.getKey());\n    System.out.println (\"Content:     \" + resultDoc.getContentAsString());\n}\n```\n\nNote 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.\n\nSee [Getting Started with SODA for Java](https://github.com/oracle/soda-for-java/blob/master/doc/Getting-started-example.md) for a complete introductory example.\n\n### Documentation\n\n* [Introduction to SODA](https://docs.oracle.com/en/database/oracle/simple-oracle-document-access/adsdi/). This book covers subjects common to all SODA impls, such as QBEs and indexing.\n* SODA Java documentation is located [here](https://docs.oracle.com/en/database/oracle/simple-oracle-document-access/java-1/adsda/).\n\nThe Javadoc is located [here](http://oracle.github.io/soda-for-java).\n\n### Build\n\nSODA for Java source code is built with Maven. See [Building the source code](doc/Building-source-code.md) for\ndetails. \n\nSODA for Java comes with a testsuite, built with JUnit and driven by Ant. See [Building and running the tests](doc/Building-and-running-tests.md) for details.\n\n## Contributing\n\nThis project welcomes contributions from the community. Before submitting a pull request, please [review our contribution guide](./CONTRIBUTING.md)\n\n## Security\n\nPlease consult the [security guide](./SECURITY.md) for our responsible security vulnerability disclosure process\n\n## License\n\nCopyright (c) 2015, 2023 Oracle and/or its affiliates.\n\n### Getting in touch\n\nPlease open an issue [here](https://github.com/oracle/soda-for-java/issues), or post to the [ORDS, SODA, and JSON in the database forum](https://community.oracle.com/tech/developers/categories/oracle_rest_data_services) with SODA-FOR-JAVA in the subject line.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foracle%2Fsoda-for-java","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foracle%2Fsoda-for-java","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foracle%2Fsoda-for-java/lists"}