This repository provides various demos using Spring Boot and a Converged Oracle Autonomous Database (you can get 2 databases for free here).
The following demos are presented in a logical order, so it is preferable starting with demo 1, then demo 2, etc...
- Demo 1 - Using the REST Enabled SQL Service to create a new database user
- Demo 2 - Connecting using Spring Boot JDBC
- Demo 3 - Calling PL/SQL functions to manage database User Locks
- Demo 4 - Distinguishing the database consumer groups to use: what and when?
- Demo 5 - Generating AWR and ADDM reports in order to analyze performance
- Demo 6 - Using Advanced Queuing (transactional queues) to notify application with events
- Demo 7 - Working with an Autonomous JSON database using
MongoRepository
- Demo 8 - Auto-REST-enable tables (+loading, OAuth...)
- Demo 9 - Spatial analytics with GeoJSON
- Demo 10 - Working with JSON and Relational data together
- Demo 11 - Always ON Application
Each demo is a Maven module depending upon the common
module.
You'll need to set several environment variables to be able to run these examples, these are related to your Autonomous Database:
- region: the OCI region where the Autonomous Database has been provisioned
- database: the unique database name you want to connect to (see the
DB Connection
on the OCI console) - database_ssl_cert_dn: the database SSL certificate (see the
DB Connection
on the OCI console) - username: the username you want to connect to the Autonomous Database (this will be the username that you'll create during Demo 1 and use later on)
- password: the password to connect to the Autonomous Database
export region=eu-marseille-1
(see here for a list)export database=iq1ffzid3wfss2e_myatps
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"
export username=demos
export password=5uper_Pa55w0rd
set this as the same as the ADMIN user (see here for password complexity requirements)
Apart an Autonomous Database configured to work with TLS connectivity *, you'll need a JDK 17.
You can get one for Linux as following:
curl -L -O https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz
tar -xf jdk-17_linux-x64_bin.tar.gz
And don't forget to configure your PATH
environment variable.
* TLS connectivity requires to add your IP address to the allowed client addresses.
- If connecting from your laptop or a VM, retrieving the IP address should be straightforward.
- If connecting from Oracle Cloud Infrastructure Cloud Shell (a web browser-based Linux terminal accessible from the Oracle Cloud Console), then use the following command to retrieve its IP address:
curl -s checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
Once the requirements are met, just clone the repo and build all the modules using Maven:
git clone https://github.com/loiclefevre/autonomous-database-for-developers.git
cd autonomous-database-for-developers
chmod +x mvnw
./mvnw install
Then 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):
mvnw spring-boot:run -pl <module name>
Example to run the Auto-REST demo, run:
mvnw spring-boot:run -pl autorest
In no particular order yet:
- Using Blockchain/Immutables tables
- Reactive R2DBC driver
- Applied Machine Learning on JSON data
- Memoptimized for write tables for IoT
- Understanding execution plans and session statistics
- Understanding the benefits for developers of the Autonomous database underlying infrastructure: Exadata
- Automatic partitioning unleashed
- Automatic indexing unleashed
- Property Graph Analytics with PGX and PGQL
- Using Oracle Machine Learning for Python using GraalVM