{"id":20149591,"url":"https://github.com/loiclefevre/autonomous-database-for-developers","last_synced_at":"2025-04-09T20:10:49.369Z","repository":{"id":43704070,"uuid":"455102452","full_name":"loiclefevre/autonomous-database-for-developers","owner":"loiclefevre","description":"Working apps demoing Autonomous Converged Database powerful capabilities for developers","archived":false,"fork":false,"pushed_at":"2022-03-19T10:29:18.000Z","size":10893,"stargazers_count":4,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-09T20:10:40.188Z","etag":null,"topics":["autonomous-database","converged-database","database","java","oracle","spring-boot"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/loiclefevre.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-02-03T09:28:33.000Z","updated_at":"2024-02-21T21:01:01.000Z","dependencies_parsed_at":"2022-08-22T04:00:32.796Z","dependency_job_id":null,"html_url":"https://github.com/loiclefevre/autonomous-database-for-developers","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loiclefevre%2Fautonomous-database-for-developers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loiclefevre%2Fautonomous-database-for-developers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loiclefevre%2Fautonomous-database-for-developers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loiclefevre%2Fautonomous-database-for-developers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/loiclefevre","download_url":"https://codeload.github.com/loiclefevre/autonomous-database-for-developers/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248103872,"owners_count":21048245,"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":["autonomous-database","converged-database","database","java","oracle","spring-boot"],"created_at":"2024-11-13T22:46:10.126Z","updated_at":"2025-04-09T20:10:49.337Z","avatar_url":"https://github.com/loiclefevre.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Autonomous Database for Developers\n\nThis repository provides various demos using Spring Boot and a *Converged* Oracle Autonomous Database (you can get 2 databases for free [here](https://www.oracle.com/cloud/free/)).\n\n![](./doc/img/java-logo.png) + ![](./doc/img/spring-boot-logo.png) + ![](./doc/img/adb-logo.png) + ![](./doc/img/ords-logo.png) + ![](./doc/img/maven-logo.png) + ![](./doc/img/liquibase-logo.png)\n\n## Demos\nThe following demos are presented in a logical order, so it is preferable starting with demo 1, then demo 2, etc...\n- [Demo 1 - Using the REST Enabled SQL Service to create a new database user](./sqlviarest)\n- [Demo 2 - Connecting using Spring Boot JDBC](./connecting)\n- [Demo 3 - Calling PL/SQL functions to manage database User Locks](./userlocks)\n- [Demo 4 - Distinguishing the database consumer groups to use: what and when?](./dbconsumergroups)\n- [Demo 5 - Generating AWR and ADDM reports in order to analyze performance](./awrreport)\n- [Demo 6 - Using Advanced Queuing (transactional queues) to notify application with events](./transactionalqueue)\n- [Demo 7 - Working with an Autonomous JSON database using `MongoRepository`](./mongodbapi)\n- [Demo 8 - Auto-REST-enable tables (+loading, OAuth...)](./autorest)\n- [Demo 9 - Spatial analytics with GeoJSON](./geojson)\n- [Demo 10 - Working with JSON and Relational data together](./relationaljson)\n- [Demo 11 - Always ON Application](./alwaysonapp)\n\nEach demo is a Maven module depending upon the `common` module.\n\n## Setup\nYou'll need to set several environment variables to be able to run these examples, these are related to your Autonomous Database:\n- region: the OCI region where the Autonomous Database has been provisioned\n- database: the unique database name you want to connect to (see the `DB Connection` on the OCI console)\n- database_ssl_cert_dn: the database SSL certificate (see the `DB Connection` on the OCI console)\n- username: the username you want to connect to the Autonomous Database \n  (this will be the username that you'll create during [Demo 1](./sqlviarest) and use later on)\n- password: the password to connect to the Autonomous Database\n\n#### Example\n- `export region=eu-marseille-1` (see [here for a list](https://docs.cloud.oracle.com/en-us/iaas/Content/General/Concepts/regions.htm#top))\n- `export database=iq1ffzid3wfss2e_myatps`\n- `export database_ssl_cert_dn=\"CN=adb.eu-marseille-1.oraclecloud.com, OU=Oracle ADB MARSEILLE, O=Oracle Corporation, L=Redwood City, ST=California, C=US\"`\n- `export username=demos`\n- `export password=5uper_Pa55w0rd` set this as the same as the ADMIN user (see [here for password complexity \n  requirements](https://docs.oracle.com/en/cloud/paas/autonomous-database/adbsa/manage-users-create.html#GUID-72DFAF2A-C4C3-4FAC-A75B-846CC6EDBA3F))\n\n### Requirements\nApart an Autonomous Database configured to work with [*TLS connectivity* *](https://blogs.oracle.com/developers/post/securely-connecting-to-autonomous-db-without-a-wallet-using-tls), you'll need a [JDK 17](https://www.oracle.com/java/technologies/downloads/).\n\nYou can get one for Linux as following:\n```\ncurl -L -O https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz\ntar -xf jdk-17_linux-x64_bin.tar.gz\n```\n\nAnd don't forget to configure your `PATH` environment variable.\n\n[*]() _TLS connectivity requires to add your IP address to the allowed client addresses._\n* _If connecting from **your laptop or a VM**, retrieving the IP address should be straightforward._\n* _If connecting from [**Oracle Cloud Infrastructure Cloud Shell**](https://docs.oracle.com/en-us/iaas/Content/API/Concepts/cloudshellgettingstarted.htm) (a web browser-based Linux terminal accessible from the Oracle Cloud Console), then use the following command to retrieve its IP address:_\n  `curl -s checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/\u003c.*$//'`\n\n\n### How to run the demos?\nOnce the requirements are met, just clone the repo and build all the modules using Maven:\n```\ngit clone https://github.com/loiclefevre/autonomous-database-for-developers.git\ncd autonomous-database-for-developers\nchmod +x mvnw \n./mvnw install \n```\n\nThen you can run a module by invoking the Spring Boot run target and specifying the module name (all of that inside the root directory, no need to change to any directory):\n```\nmvnw spring-boot:run -pl \u003cmodule name\u003e\n```\nExample to run the Auto-REST demo, run:\n```\nmvnw spring-boot:run -pl autorest\n```\n\n### Coming next...\nIn no particular order yet:\n- Using Blockchain/Immutables tables\n- Reactive R2DBC driver \n- Applied Machine Learning on JSON data\n- Memoptimized for write tables for IoT\n- Understanding execution plans and session statistics\n- Understanding the benefits for developers of the Autonomous database underlying infrastructure: Exadata\n- Automatic partitioning unleashed\n- Automatic indexing unleashed\n- Property Graph Analytics with PGX and PGQL\n- Using Oracle Machine Learning for Python using GraalVM\n\n[//]: \u003c\u003e (RD2BC https://boottechnologies-ci.medium.com/spring-data-r2dbc-with-postgresql-database-on-amazon-rds-71864ab9af38)\n\n[//]: \u003c\u003e (OML4Py https://asktom.oracle.com/pls/apex/asktom.search?oh=17401)\n[//]: \u003c\u003e (OML4Py https://blogs.oracle.com/machinelearning/)\n[//]: \u003c\u003e (OML4Py https://asktom.oracle.com/pls/apex/f?p=100:551::::551:P551_CLASS_ID,P551_INVITED:15741,N\u0026cs=143C257921A735F18DBC7650B4E24685E)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Floiclefevre%2Fautonomous-database-for-developers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Floiclefevre%2Fautonomous-database-for-developers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Floiclefevre%2Fautonomous-database-for-developers/lists"}