· 4 years ago · Apr 09, 2021, 12:02 PM
1package de.hshn.mi.pdbg.basicservice;
2
3import java.sql.*;
4
5public final class DBCreator {
6 protected static final String[] SQL_DDL_STATEMENTS;
7
8 static {
9 SQL_DDL_STATEMENTS = new String[]{
10 "CREATE SEQUENCE Master_Sequence"
11 + " INCREMENT BY 1 START WITH 1;\r\n",
12 "CREATE TABLE Patient (\r\n" + "pID int8 PRIMARY KEY,\r\n" + "vorname varchar(255) NOT NULL,\r\n"
13 + "nachname varchar(255) NOT NULL,\r\n" + "geburtstag date,\r\n"
14 + "krankenkasse varchar(255),\r\n" + "versicherungsnummer varchar(255) UNIQUE);\r\n",
15
16 "CREATE TABLE Station (\r\n" + "stID int8 PRIMARY KEY,\r\n" + "bezeichnung varchar(255) NOT NULL,\r\n"
17 + "bettenanzahl int4 NOT NULL\r\n);\r\n",
18
19 "CREATE TABLE Aufenthalt (\r\n" + "aufID int8 PRIMARY KEY,\r\n" + "aufnahmedatum date NOT NULL,\r\n"
20 + "entlassdatum date,\r\n" + "pID int8,\r\n"
21 + "stID int8,\r\n"
22 + "FOREIGN KEY (pID) REFERENCES Aufenthalt (aufID) ON DELETE SET NULL,\r\n"
23 + "FOREIGN KEY (stID) REFERENCES Aufenthalt (aufID) ON DELETE SET NULL);\r\n"};
24 }
25
26 public static void main(String[] args) throws Exception {
27 new DBCreator().createDB("jdbc:postgresql://localhost/DB2", "postgres", "team9");
28
29 }
30
31 public void createDB(String dbURL, String user, String password) throws ClassNotFoundException, SQLException {
32 String jdbcUrl = "org.postgresql.Driver";
33 Class.forName(jdbcUrl);
34 Connection connection = createConnection(dbURL, user, password);
35 Statement statement = connection.createStatement();
36 statement.executeUpdate(
37
38 "DROP DATABASE IF EXISTS HOSPITAL; "
39
40 );
41 System.out.println("database deleted");
42 statement.executeUpdate("CREATE DATABASE HOSPITAL; ");
43
44 System.out.println("database created");
45 for (int i = 0; i < SQL_DDL_STATEMENTS.length; i++) {
46
47 System.out.println(SQL_DDL_STATEMENTS[i]);
48
49 statement.executeUpdate(SQL_DDL_STATEMENTS[i]);
50 }
51 }
52
53 protected Connection createConnection(String dbUrl, String user, String password) throws SQLException {
54 Connection connection = DriverManager.getConnection(dbUrl, user, password);
55 return connection;
56
57 }
58
59}
60