diff --git a/src/main/java/Enigma/Main.java b/src/main/java/Enigma/Main.java index 6adb9204e8eda602b491142bacbe98185c6c0eaa..2bfc594ce53b57275c180938447de3ea3a866f17 100644 --- a/src/main/java/Enigma/Main.java +++ b/src/main/java/Enigma/Main.java @@ -1,5 +1,6 @@ package Enigma; +import Enigma.model.Codebuch; import Enigma.model.DatenbankSqlite; import Enigma.model.Morsecode; @@ -7,8 +8,7 @@ import java.sql.SQLException; public class Main { - public static void main(String[] args) { + public static void main(String[] args) throws SQLException { App.main(args); } - } diff --git a/src/main/java/Enigma/model/DatenbankSqlite.java b/src/main/java/Enigma/model/DatenbankSqlite.java index 6a203b58e38cca810c87d4ecf18838dd7c8168f1..f8170f251985bb806333d72f087fe57dc2e0769e 100644 --- a/src/main/java/Enigma/model/DatenbankSqlite.java +++ b/src/main/java/Enigma/model/DatenbankSqlite.java @@ -1,6 +1,8 @@ package Enigma.model; +import javax.swing.text.html.HTML; import java.sql.*; +import java.util.Random; /** * Dies ist die SQLite Datenbank Klasse @@ -61,4 +63,89 @@ public class DatenbankSqlite { return cb; } + + //region Random New Codebuch generieren + /* + *//** + * Setzt zufällige Codebuch Einträge in die SQLite Datenbank + * Tag => int + * Walzenlage => String w1,w2,w3 + * Ringstellung => String r1,r2,r3 + * Steckverbindungen => s0,s1,s2,s3,s4,s5,s6,s7,s8,s9 + *//* + public void autoGenCodebuch() throws SQLException { + + Connection conn = connect(); + conn.setAutoCommit(false); + PreparedStatement pstmtInsert = conn.prepareStatement("INSERT INTO table_codebuch (Tag, Walzenlage, Ringstellung, Steckverbindung) VALUES (?, ?, ?, ?);"); + for (int i = 3; i < 32; i++) { + pstmtInsert.setInt(1, i); + pstmtInsert.setString(2, walzenlage()); + pstmtInsert.setString(3, ringstellung()); + pstmtInsert.setString(4, steckverbindung()); + pstmtInsert.executeUpdate(); + } + + conn.commit(); + } + + *//** + * Generiert einen String aus 3 Zufalls-Zahlen(zwischen 1 und 5) + * die Zahlen sind durch Komma getrennt + * @return String => walzenlage mit drei Kommaseparierten Zufallszahlen zwischen 1 und 5 + *//* + private static String walzenlage(){ + String walzenlage; + Random random = new Random(); + int[] w = new int[3]; + for (int i = 0; i < 3; i++) { + + w[i] = (random.nextInt(5))+1; + if (i==1&&w[0]==w[i])w[i]=(random.nextInt(5))+1; + if ((i==2&&w[0]==w[2])||(i==2&&w[1]==w[i]))w[i]=(random.nextInt(5))+1; + } + walzenlage= w[0]+","+w[1]+","+w[2]; + return walzenlage; + } + + *//** + * Generiert einen String aus 3 Zufalls-Zahlen(zwischen 1 und 26) + * die Zahlen sind durch Komma getrennt + * @return String => ringstellung mit drei Kommaseparierten Zufallszahlen zwischen 1 und 26 + *//* + private static String ringstellung(){ + String ringstellung; + Random random = new Random(); + int[] w = new int[3]; + for (int i = 0; i < 3; i++) { + w[i] = (random.nextInt(26))+1; + } + ringstellung= w[0]+","+w[1]+","+w[2]; + return ringstellung; + } + + *//** + * Generiert einen String aus 10 * 2 unterschiedlichen Großbuchstaben + * @return String => 10 Buchstabenkombinationen mit Komma getrennt + *//* + private static String steckverbindung(){ + Random rnd = new Random(); + String steckverbindung=""; + char[] c = new char[2]; + for (int i = 0; i < 10; i++) { + for (int j = 0; j < 2; j++) { + c[j]= (char) (rnd.nextInt(26) + 'A'); + if (j==1) { + while (c[0] == c[j]) { + c[j] = (char) (rnd.nextInt(26) + 'A'); + } + } + } + System.out.println(c[0]+" / "+c[1]); + steckverbindung+= ((""+c[0]) + (""+c[1]) +","); + } + steckverbindung= (String) steckverbindung.subSequence(0,steckverbindung.lastIndexOf(",")); + return steckverbindung; + }*/ + //endregion } diff --git a/src/main/resources/Enigma/codebuch.sqlite b/src/main/resources/Enigma/codebuch.sqlite index 7d4a703b04d15e43146dddaca53c1b8e3ea83877..78be5227db85283c0c20e3719303cb77e48e8cbf 100644 Binary files a/src/main/resources/Enigma/codebuch.sqlite and b/src/main/resources/Enigma/codebuch.sqlite differ