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();} + } +}