From abaa81faa1ceea4a330837a37f8dab33c93b827d Mon Sep 17 00:00:00 2001 From: brausjonas Date: Mon, 8 May 2023 12:58:46 +0200 Subject: [PATCH] Backend Semester Controller --- backend/database.mv.db | Bin 28672 -> 32768 bytes backend/database.trace.db | 105 ++++++++++++++++++ .../backend/anwprj/DataBaseHandler.java | 40 ++++++- .../backend/anwprj/Semesters/Semester.java | 37 ++++++ .../anwprj/controller/SemesterController.java | 43 +++++++ 5 files changed, 224 insertions(+), 1 deletion(-) create mode 100644 backend/src/main/java/com/example/backend/anwprj/Semesters/Semester.java create mode 100644 backend/src/main/java/com/example/backend/anwprj/controller/SemesterController.java diff --git a/backend/database.mv.db b/backend/database.mv.db index fdfd9acaa12311164c647cc2f72a9922d8510409..8abdd0de52052f6788eac947efe5bb5a2615b028 100644 GIT binary patch literal 32768 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 Y*#BqA{C}Q-Vfv%N;Do;N45zRD9~y}ElK=n! literal 28672 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.java:469) + at org.h2.mvstore.MVStore$Builder.open(MVStore.java:4082) + at org.h2.mvstore.db.Store.(Store.java:136) + at org.h2.engine.Database.(Database.java:324) + at org.h2.engine.Engine.openSession(Engine.java:92) + at org.h2.engine.Engine.openSession(Engine.java:222) + at org.h2.engine.Engine.createSession(Engine.java:201) + at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:338) + at org.h2.jdbc.JdbcConnection.(JdbcConnection.java:122) + at org.h2.util.JdbcUtils.getConnection(JdbcUtils.java:288) + at org.h2.server.web.WebServer.getConnection(WebServer.java:808) + at org.h2.server.web.WebApp.login(WebApp.java:1033) + at org.h2.server.web.WebApp.process(WebApp.java:226) + at org.h2.server.web.WebApp.processRequest(WebApp.java:176) + at org.h2.server.web.WebThread.process(WebThread.java:152) + at org.h2.server.web.WebThread.run(WebThread.java:101) + at java.base/java.lang.Thread.run(Thread.java:1623) +Caused by: org.h2.jdbc.JdbcSQLNonTransientException: Allgemeiner Fehler: "org.h2.mvstore.MVStoreException: The file is locked: D:/DH/TIF22A_AnwProjekt_B/backend/database.mv.db [2.1.214/7]" +General error: "org.h2.mvstore.MVStoreException: The file is locked: D:/DH/TIF22A_AnwProjekt_B/backend/database.mv.db [2.1.214/7]" [50000-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:554) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + ... 22 more +Caused by: org.h2.mvstore.MVStoreException: The file is locked: D:/DH/TIF22A_AnwProjekt_B/backend/database.mv.db [2.1.214/7] + at org.h2.mvstore.DataUtils.newMVStoreException(DataUtils.java:1004) + at org.h2.mvstore.FileStore.open(FileStore.java:178) + at org.h2.mvstore.FileStore.open(FileStore.java:128) + at org.h2.mvstore.MVStore.(MVStore.java:452) + ... 16 more +2023-05-08 12:55:34 database: flush +org.h2.message.DbException: Allgemeiner Fehler: "org.h2.mvstore.MVStoreException: The file is locked: D:/DH/TIF22A_AnwProjekt_B/backend/database.mv.db [2.1.214/7]" +General error: "org.h2.mvstore.MVStoreException: The file is locked: D:/DH/TIF22A_AnwProjekt_B/backend/database.mv.db [2.1.214/7]" [50000-214] + at org.h2.message.DbException.get(DbException.java:212) + at org.h2.message.DbException.convert(DbException.java:395) + at org.h2.mvstore.db.Store.lambda$new$0(Store.java:125) + at org.h2.mvstore.MVStore.handleException(MVStore.java:3318) + at org.h2.mvstore.MVStore.panic(MVStore.java:593) + at org.h2.mvstore.MVStore.(MVStore.java:469) + at org.h2.mvstore.MVStore$Builder.open(MVStore.java:4082) + at org.h2.mvstore.db.Store.(Store.java:136) + at org.h2.engine.Database.(Database.java:324) + at org.h2.engine.Engine.openSession(Engine.java:92) + at org.h2.engine.Engine.openSession(Engine.java:222) + at org.h2.engine.Engine.createSession(Engine.java:201) + at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:338) + at org.h2.jdbc.JdbcConnection.(JdbcConnection.java:122) + at org.h2.Driver.connect(Driver.java:59) + at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:683) + at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:230) + at com.example.backend.anwprj.DataBaseHandler.(DataBaseHandler.java:29) + at com.example.backend.anwprj.DataBaseHandler.getInstance(DataBaseHandler.java:16) + at com.example.backend.anwprj.controller.SemesterController.(SemesterController.java:15) + at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:67) + at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500) + at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:484) + at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:198) + at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:87) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1308) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1199) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:560) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:973) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:917) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:584) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:434) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:310) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1304) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1293) + at com.example.backend.BackendApplication.main(BackendApplication.java:12) +Caused by: org.h2.jdbc.JdbcSQLNonTransientException: Allgemeiner Fehler: "org.h2.mvstore.MVStoreException: The file is locked: D:/DH/TIF22A_AnwProjekt_B/backend/database.mv.db [2.1.214/7]" +General error: "org.h2.mvstore.MVStoreException: The file is locked: D:/DH/TIF22A_AnwProjekt_B/backend/database.mv.db [2.1.214/7]" [50000-214] + at org.h2.message.DbException.getJdbcSQLException(DbException.java:554) + at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) + ... 43 more +Caused by: org.h2.mvstore.MVStoreException: The file is locked: D:/DH/TIF22A_AnwProjekt_B/backend/database.mv.db [2.1.214/7] + at org.h2.mvstore.DataUtils.newMVStoreException(DataUtils.java:1004) + at org.h2.mvstore.FileStore.open(FileStore.java:178) + at org.h2.mvstore.FileStore.open(FileStore.java:128) + at org.h2.mvstore.MVStore.(MVStore.java:452) + ... 37 more diff --git a/backend/src/main/java/com/example/backend/anwprj/DataBaseHandler.java b/backend/src/main/java/com/example/backend/anwprj/DataBaseHandler.java index 1222c9c..1d3cd20 100644 --- a/backend/src/main/java/com/example/backend/anwprj/DataBaseHandler.java +++ b/backend/src/main/java/com/example/backend/anwprj/DataBaseHandler.java @@ -1,5 +1,6 @@ package com.example.backend.anwprj; +import com.example.backend.anwprj.Semesters.Semester; import com.example.backend.anwprj.Users.User; import java.sql.*; @@ -29,10 +30,47 @@ public class DataBaseHandler st = connection.createStatement(); } catch (SQLException e) { - throw new RuntimeException(e); + System.out.println("No Connection!"); } } + public Semester findSemester(String name) + { + try + { + ResultSet rs = st.executeQuery("select * from SEMESTER where name = '" + name + "'"); + if(rs.next()) + { + return new Semester( + rs.getInt("id"), + rs.getInt("startweeknumber"), + rs.getInt("endweeknumber"), + rs.getString("name") + ); + } + } + catch(Exception e) + { + e.printStackTrace(); + } + + return null; + } + + public boolean addSemester(Semester s) + { + try + { + st.executeUpdate("insert into SEMESTER (startweeknumber, endweeknumber, name) values (" + s.getStartweeknumber() + ", " + s.getEndweeknumber() + ", '" + s.getName() + "')"); + return true; + + } catch (SQLException e) + { + return false; + } + } + + public User findUser(String mail, String password) { diff --git a/backend/src/main/java/com/example/backend/anwprj/Semesters/Semester.java b/backend/src/main/java/com/example/backend/anwprj/Semesters/Semester.java new file mode 100644 index 0000000..91cd67f --- /dev/null +++ b/backend/src/main/java/com/example/backend/anwprj/Semesters/Semester.java @@ -0,0 +1,37 @@ +package com.example.backend.anwprj.Semesters; + +public class Semester +{ + private int id; + private int startweeknumber; + private int endweeknumber; + private String name; + + public Semester(int id, int startweeknumber, int endweeknumber, String name) + { + this.id = id; + this.startweeknumber = startweeknumber; + this.endweeknumber = endweeknumber; + this.name = name; + } + + public int getId() + { + return id; + } + + public int getStartweeknumber() + { + return startweeknumber; + } + + public int getEndweeknumber() + { + return endweeknumber; + } + + public String getName() + { + return name; + } +} diff --git a/backend/src/main/java/com/example/backend/anwprj/controller/SemesterController.java b/backend/src/main/java/com/example/backend/anwprj/controller/SemesterController.java new file mode 100644 index 0000000..7ad218e --- /dev/null +++ b/backend/src/main/java/com/example/backend/anwprj/controller/SemesterController.java @@ -0,0 +1,43 @@ +package com.example.backend.anwprj.controller; + +import com.example.backend.anwprj.DataBaseHandler; +import com.example.backend.anwprj.Semesters.Semester; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +@RestController +public class SemesterController +{ + private DataBaseHandler db; + + { + db = DataBaseHandler.getInstance(); + } + + @CrossOrigin + @PostMapping("/semester") + public ResponseEntity addSemester(@RequestBody Semester semester) + { + if(db.addSemester(semester)) + { + return new ResponseEntity<>(semester, HttpStatus.OK); + } + + + return new ResponseEntity<>(HttpStatus.BAD_REQUEST); + } + + @CrossOrigin + @GetMapping("/semester") + public ResponseEntity getSemester(@RequestParam(name="name") String name) + { + Semester s = db.findSemester(name); + if (s != null) + { + return new ResponseEntity<>(s, HttpStatus.OK); + } + + return new ResponseEntity<>(HttpStatus.NOT_FOUND); + } +}