Backend Semester Controller

This commit is contained in:
brausjonas
2023-05-08 12:58:46 +02:00
parent fe1cc9c479
commit abaa81faa1
5 changed files with 224 additions and 1 deletions
Binary file not shown.
+105
View File
@@ -114,3 +114,108 @@ Column "permissions" not found [42122-214]
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:1623)
2023-05-08 12:49:43 jdbc[3]: exception
org.h2.jdbc.JdbcSQLSyntaxErrorException: Tabelle "SEMESTERS" nicht gefunden
Table "SEMESTERS" not found; SQL statement:
select * from semesters where name = 'esfdasfasdfds' [42102-214]
2023-05-08 12:50:48 jdbc[3]: exception
org.h2.jdbc.JdbcSQLSyntaxErrorException: Tabelle "SEMESTERS" nicht gefunden
Table "SEMESTERS" not found; SQL statement:
select * from SEMESTERS where name = 'esfdasfasdfds' [42102-214]
2023-05-08 12:52:10 jdbc[3]: exception
org.h2.jdbc.JdbcSQLSyntaxErrorException: Tabelle "SEMESTERS" nicht gefunden
Table "SEMESTERS" not found; SQL statement:
select * from SEMESTERS where name = 'Tiff22ASem2' [42102-214]
2023-05-08 12:52:59 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.<init>(MVStore.java:469)
at org.h2.mvstore.MVStore$Builder.open(MVStore.java:4082)
at org.h2.mvstore.db.Store.<init>(Store.java:136)
at org.h2.engine.Database.<init>(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.<init>(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.<init>(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.<init>(MVStore.java:469)
at org.h2.mvstore.MVStore$Builder.open(MVStore.java:4082)
at org.h2.mvstore.db.Store.<init>(Store.java:136)
at org.h2.engine.Database.<init>(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.<init>(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.<init>(DataBaseHandler.java:29)
at com.example.backend.anwprj.DataBaseHandler.getInstance(DataBaseHandler.java:16)
at com.example.backend.anwprj.controller.SemesterController.<init>(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.<init>(MVStore.java:452)
... 37 more
@@ -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)
{
@@ -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;
}
}
@@ -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<Semester> 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<Semester> 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);
}
}