From b53d05edb63e016b3f04e9b096cdb75ec64bb81d Mon Sep 17 00:00:00 2001 From: Maximilian Leopold Date: Fri, 22 Mar 2019 11:08:07 +0100 Subject: [PATCH 1/4] Added DBConnector You can get a SQL Connection to the bugageocaching DB by using Connection con = DBConnector.connect(); --- .idea/compiler.xml | 2 + ...labsw.labswp_2019_sose_geocaching.test.iml | 2 +- .../bugageocaching/controller/Controller.java | 21 +++++++ .../labsw/bugageocaching/db/DBConnector.java | 58 +++++++++++++++++++ 4 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 src/main/java/hhn/labsw/bugageocaching/controller/Controller.java create mode 100644 src/main/java/hhn/labsw/bugageocaching/db/DBConnector.java diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 8b96030..4aac343 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -6,6 +6,8 @@ + + \ No newline at end of file diff --git a/.idea/modules/de.hhn.labsw.labswp_2019_sose_geocaching.test.iml b/.idea/modules/de.hhn.labsw.labswp_2019_sose_geocaching.test.iml index 1314143..ce5f54b 100644 --- a/.idea/modules/de.hhn.labsw.labswp_2019_sose_geocaching.test.iml +++ b/.idea/modules/de.hhn.labsw.labswp_2019_sose_geocaching.test.iml @@ -25,8 +25,8 @@ - + diff --git a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java new file mode 100644 index 0000000..3acb25a --- /dev/null +++ b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java @@ -0,0 +1,21 @@ +package hhn.labsw.bugageocaching.controller; + +import hhn.labsw.bugageocaching.db.DBConnector; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.sql.Connection; +import java.sql.DatabaseMetaData; +import java.sql.ResultSet; +import java.sql.SQLException; + +@RestController +public class Controller { + + @RequestMapping("/") + public String test(){ + + return ""; + } + +} diff --git a/src/main/java/hhn/labsw/bugageocaching/db/DBConnector.java b/src/main/java/hhn/labsw/bugageocaching/db/DBConnector.java new file mode 100644 index 0000000..fbfceea --- /dev/null +++ b/src/main/java/hhn/labsw/bugageocaching/db/DBConnector.java @@ -0,0 +1,58 @@ +package hhn.labsw.bugageocaching.db; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; + +public class DBConnector { + + /* + * Installation of the web service + * + * The following parameters have to be changed for setting up the web service in another environment. + * DB_HOST = Address of the database. Examples: localhost, 192.168.12.7, mydomain.com + * DB_USER = Username for the database connection + * DB_PASSWORD = Password for the database connection + * DATABASE = Name of the database that shall be used + * + */ + private static final String DB_HOST = "www.se.hs-heilbronn.de:3406/buga19Geocaching"; + private static final String DB_USER = "BuGa19GeocachingUser"; + private static final String DB_PASSWORD = "GeocachingPw"; + + /* + * For setting up the Webservice no changes are needed from here! + */ + + private static final Logger logger = LoggerFactory.getLogger(DBConnector.class); + + public static Connection connect() { + + logger.debug("Trying to establish connection to database"); + + try { + Class.forName("org.mariadb.jdbc.Driver"); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } + + /* + * Connect to database + */ + Connection connection = null; + + try { + connection = DriverManager.getConnection("jdbc:mariadb://" + DB_HOST + "?user=" + DB_USER + "&password=" + DB_PASSWORD); + logger.debug("Connected"); + } catch (SQLException e) { + System.out.println(e.getMessage()); + e.printStackTrace(); + } + + return connection; + } + +} From c4e742ecb0423c90e2c89c81370eedd40137cf0f Mon Sep 17 00:00:00 2001 From: Maximilian Leopold Date: Fri, 22 Mar 2019 11:11:40 +0100 Subject: [PATCH 2/4] updated gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 9a4a0e0..6c08a57 100644 --- a/.gitignore +++ b/.gitignore @@ -24,6 +24,8 @@ labswp_2019_sose_geocaching.iml # public folder src/main/resources/public/ +.idea/ + # Gradle .idea/**/gradle.xml From c6a9b77a0ae27dcfe0a9b3f035ebda95f29869f3 Mon Sep 17 00:00:00 2001 From: Maximilian Leopold Date: Fri, 22 Mar 2019 18:05:31 +0100 Subject: [PATCH 3/4] Added Autowired Repositories to Controller --- build.gradle | 3 +++ .../bugageocaching/controller/Controller.java | 22 +++++++++---------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/build.gradle b/build.gradle index 8310c4f..e8e2fc4 100644 --- a/build.gradle +++ b/build.gradle @@ -27,6 +27,9 @@ dependencies { //MariaDB implementation 'org.mariadb.jdbc:mariadb-java-client' + + //Thymeleaf + compile("org.springframework.boot:spring-boot-starter-thymeleaf") } node { diff --git a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java index 3acb25a..88fb708 100644 --- a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java +++ b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java @@ -1,21 +1,21 @@ package hhn.labsw.bugageocaching.controller; -import hhn.labsw.bugageocaching.db.DBConnector; -import org.springframework.web.bind.annotation.RequestMapping; +import hhn.labsw.bugageocaching.repositories.CacheRepository; +import hhn.labsw.bugageocaching.repositories.RewardRepository; +import hhn.labsw.bugageocaching.repositories.StationRepository; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RestController; -import java.sql.Connection; -import java.sql.DatabaseMetaData; -import java.sql.ResultSet; -import java.sql.SQLException; - @RestController public class Controller { - @RequestMapping("/") - public String test(){ + @Autowired + CacheRepository cacheRepository; - return ""; - } + @Autowired + RewardRepository rewardRepository; + + @Autowired + StationRepository stationRepository; } From af2c4e49eaf525e53b36e43b247c62ed5cdf1540 Mon Sep 17 00:00:00 2001 From: Maximilian Leopold Date: Fri, 22 Mar 2019 18:26:18 +0100 Subject: [PATCH 4/4] Added GSON to gradle | /allCaches now returns a JSON with All Caches in DB --- .idea/modules.xml | 1 + build.gradle | 3 +++ .../labsw/bugageocaching/controller/Controller.java | 10 ++++++++++ 3 files changed, 14 insertions(+) diff --git a/.idea/modules.xml b/.idea/modules.xml index 9db8a1d..50b8b01 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -5,6 +5,7 @@ + \ No newline at end of file diff --git a/build.gradle b/build.gradle index e8e2fc4..0f33646 100644 --- a/build.gradle +++ b/build.gradle @@ -30,6 +30,9 @@ dependencies { //Thymeleaf compile("org.springframework.boot:spring-boot-starter-thymeleaf") + + //JSON Parser + implementation 'com.google.code.gson:gson:2.8.5' } node { diff --git a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java index 88fb708..9a8501d 100644 --- a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java +++ b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java @@ -1,9 +1,13 @@ package hhn.labsw.bugageocaching.controller; +import com.google.gson.Gson; +import hhn.labsw.bugageocaching.entities.Cache; import hhn.labsw.bugageocaching.repositories.CacheRepository; import hhn.labsw.bugageocaching.repositories.RewardRepository; import hhn.labsw.bugageocaching.repositories.StationRepository; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; @RestController @@ -18,4 +22,10 @@ public class Controller { @Autowired StationRepository stationRepository; + @RequestMapping("/allCaches") + @ResponseBody + public String getAllCaches(){ + return new Gson().toJson(cacheRepository.findAll()); + } + }