diff --git a/data-platform/autonomous-database/autonomous-json/SpringBootDemo/README.md b/data-platform/autonomous-database/autonomous-json/SpringBootDemo/README.md
new file mode 100644
index 000000000..b00025199
--- /dev/null
+++ b/data-platform/autonomous-database/autonomous-json/SpringBootDemo/README.md
@@ -0,0 +1,9 @@
+This repo contains some simple Sprong-Boot Java program demonstrating using Oracle API for MongoDB
+
+# License
+
+Copyright (c) 2025 Oracle and/or its affiliates.
+
+Licensed under the Universal Permissive License (UPL), Version 1.0.
+
+See [LICENSE](https://github.com/oracle-devrel/technology-engineering/blob/main/LICENSE) for more details.
diff --git a/data-platform/autonomous-database/autonomous-json/SpringBootDemo/pom.xml b/data-platform/autonomous-database/autonomous-json/SpringBootDemo/pom.xml
new file mode 100644
index 000000000..25101fe6a
--- /dev/null
+++ b/data-platform/autonomous-database/autonomous-json/SpringBootDemo/pom.xml
@@ -0,0 +1,94 @@
+
+
+ 4.0.0
+
+ com.oracle
+ SpringBootDemo
+ 1.0-SNAPSHOT
+
+
+ 21
+ 21
+ UTF-8
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-data-mongodb
+ 3.5.4
+
+
+
+ ch.qos.logback
+ logback-classic
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ 3.5.4
+ test
+
+
+
+ ch.qos.logback
+ logback-classic
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-testcontainers
+ 3.5.4
+ test
+
+
+
+ ch.qos.logback
+ logback-classic
+
+
+
+
+
+ org.testcontainers
+ testcontainers
+ 1.21.3
+ test
+
+
+
+ ch.qos.logback
+ logback-classic
+
+
+
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ 5.13.4
+ test
+
+
+
+ ch.qos.logback
+ logback-classic
+
+
+
+
+
+
+ org.slf4j
+ slf4j-simple
+
+
+
diff --git a/data-platform/autonomous-database/autonomous-json/SpringBootDemo/src/a.txt b/data-platform/autonomous-database/autonomous-json/SpringBootDemo/src/a.txt
new file mode 100644
index 000000000..72943a16f
--- /dev/null
+++ b/data-platform/autonomous-database/autonomous-json/SpringBootDemo/src/a.txt
@@ -0,0 +1 @@
+aaa
diff --git a/data-platform/autonomous-database/autonomous-json/SpringBootDemo/src/main/a.txt b/data-platform/autonomous-database/autonomous-json/SpringBootDemo/src/main/a.txt
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/data-platform/autonomous-database/autonomous-json/SpringBootDemo/src/main/a.txt
@@ -0,0 +1 @@
+
diff --git a/data-platform/autonomous-database/autonomous-json/SpringBootDemo/src/main/java/com/oracle/Color.java b/data-platform/autonomous-database/autonomous-json/SpringBootDemo/src/main/java/com/oracle/Color.java
new file mode 100644
index 000000000..49f5c3389
--- /dev/null
+++ b/data-platform/autonomous-database/autonomous-json/SpringBootDemo/src/main/java/com/oracle/Color.java
@@ -0,0 +1,49 @@
+
+package com.oracle;
+
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.mapping.Document;
+import org.springframework.data.mongodb.core.mapping.Field;
+
+@Document(collection = "colors")
+public class Color {
+ @Id
+ private String objectId;
+
+ @Field(name = "name")
+ private String name;
+
+ public Color() {}
+
+ public Color(String id, String name) {
+ this.objectId = id;
+ this.name = name;
+ }
+
+ public void setObjectId(String id) {
+ this.objectId = id;
+ }
+
+ public String getObjectId() {
+ return this.objectId;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String toString() {
+ return this.objectId+" : "+this.name;
+ }
+
+ @Override
+ public final boolean equals(Object o) {
+ if (!(o instanceof Color color)) return false;
+
+ return getObjectId().equals(color.getObjectId());
+ }
+}
diff --git a/data-platform/autonomous-database/autonomous-json/SpringBootDemo/src/main/java/com/oracle/ColorRepository b/data-platform/autonomous-database/autonomous-json/SpringBootDemo/src/main/java/com/oracle/ColorRepository
new file mode 100644
index 000000000..a1bc4f9df
--- /dev/null
+++ b/data-platform/autonomous-database/autonomous-json/SpringBootDemo/src/main/java/com/oracle/ColorRepository
@@ -0,0 +1,9 @@
+package com.oracle;
+
+import org.springframework.data.mongodb.repository.MongoRepository;
+import org.springframework.data.mongodb.repository.Query;
+
+public interface ColorRepository extends MongoRepository {
+ @Query
+ Color findByName(String Name);
+}
diff --git a/data-platform/autonomous-database/autonomous-json/SpringBootDemo/src/main/java/com/oracle/Main.java b/data-platform/autonomous-database/autonomous-json/SpringBootDemo/src/main/java/com/oracle/Main.java
new file mode 100644
index 000000000..bd98dbf58
--- /dev/null
+++ b/data-platform/autonomous-database/autonomous-json/SpringBootDemo/src/main/java/com/oracle/Main.java
@@ -0,0 +1,13 @@
+package com.oracle;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+//TIP To Run code, press or
+// click the icon in the gutter.
+@SpringBootApplication
+public class Main {
+
+ public static void main(String[] args) {
+ SpringApplication.run(Main.class,args);
+ }
+}
diff --git a/data-platform/autonomous-database/autonomous-json/SpringBootDemo/src/main/resources/application.yaml b/data-platform/autonomous-database/autonomous-json/SpringBootDemo/src/main/resources/application.yaml
new file mode 100644
index 000000000..bbb378ab9
--- /dev/null
+++ b/data-platform/autonomous-database/autonomous-json/SpringBootDemo/src/main/resources/application.yaml
@@ -0,0 +1,5 @@
+spring:
+ data:
+ mongodb:
+ uri: ${DB_URI}
+ database: ${DB_NAME}
diff --git a/data-platform/autonomous-database/autonomous-json/SpringBootDemo/src/test/java/com/oracle/MongoTest.java b/data-platform/autonomous-database/autonomous-json/SpringBootDemo/src/test/java/com/oracle/MongoTest.java
new file mode 100644
index 000000000..8aa03e7aa
--- /dev/null
+++ b/data-platform/autonomous-database/autonomous-json/SpringBootDemo/src/test/java/com/oracle/MongoTest.java
@@ -0,0 +1,71 @@
+
+package com.oracle;
+
+import com.mongodb.client.MongoCollection;
+import com.mongodb.client.model.Filters;
+import com.mongodb.client.model.ReplaceOptions;
+import org.bson.Document;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.bson.conversions.Bson;
+
+@SpringBootTest
+public class MongoTest {
+ @Autowired
+ ColorRepository colorRepository;
+
+ @Autowired
+ MongoTemplate mt;
+
+ Color blue = new Color("123","blue"),
+ grey = new Color("LU0010001-2000001891770-CAMT053-42","grey"),
+ green = new Color("001","green"),
+ yellow = new Color("002","yellow"),
+ red = new Color("003", "red");
+
+ @Test
+ void insertTest() {
+ try {
+ System.out.println("Save test");
+
+ System.out.println(colorRepository.save(blue));
+ System.out.println(colorRepository.save(grey));
+ System.out.println(colorRepository.save(green));
+ System.out.println(colorRepository.save(yellow));
+ System.out.println(colorRepository.save(red));
+
+ System.out.println("Save test done.");
+ }
+ catch(Exception e) {e.printStackTrace();}
+ }
+
+ @Test
+ void replaceTest() {
+ try {
+ System.out.println("Replace test");
+
+ MongoCollection col = mt.getCollection("colors");
+ Bson filter = Filters.eq("_id", "LU0010001-2000001891770-CAMT053-42");
+ ReplaceOptions replace = new ReplaceOptions().upsert(true);
+ Document d = new Document("_id", "LU0010001-2000001891770-CAMT053-42");
+ d.append("name", "white");
+ col.replaceOne(filter, d, replace);
+
+ System.out.println("End of reeplace test.");
+ }
+ catch (Exception e) {e.printStackTrace();}
+ }
+
+ @Test
+ void findTest() {
+ try {
+ System.out.println("Find test");
+ Color c = colorRepository.findByName("red");
+ System.out.println(c);
+ System.out.println("End of find test");
+ }
+ catch (Exception e) {e.printStackTrace();}
+ }
+}