Hallo,
ich versuche gerade mir ein kleines Programm zu schreiben.
Erstellen der Tabellen funktioniert, mit der Ausnahme das (meine Einfache Lösung) ich ein Feld als TINYTEXT deklariert nicht als teil des Unique und Key benutzen kann.
Oder ich verstehe es einfach noch nicht ;-)
Also folgendes:
ich parse über Jsoup eine Webseite und erhalte dadurch eine Liste mit jeweils 2 Strings.
Der erste String ist eine Zahl "1", "2", "4" ....... bis hin zu "1099511627776"
Dies ist natürlich zu viel für ein "normales" Integer deshalb wollte ich es über BIGINT(MariaDB type) in die Tabelle schreiben.
Und dazu kommt der passende 2.te String aus dem Paar in ein TINYTEXT Feld.
Bei den Statement.setxxxxxx() finde ich keine entsprechende Methode um ein BIGINT als Value in das Statement zu übernehmen.
Deshalb wollte ich es mir einfach machen und es als Text speichern, scheitere dadurch aber am Unique bzw. Key, das es wohl Text dafür nicht mag.
Kann mir jemand erklären wie ich den String mit der Zahl mit welcher setxx methode verwenden kann ?
Die Tabelle erstelle ich mit
CREATE TABLE IF NOT EXISTS Sprachen (FRAU BOOLEAN, STYPE TINYINT, BITVAL TINYTEXT, NAM_DE TINYTEXT, LONG_DE TINYTEXT, NAM_EN TINYTEXT, LONG_EN TINYTEXT, NAM_IT TINYTEXT, LONG_IT TINYTEXT, NAM_FR TINYTEXT, LONG_FR TINYTEXT, NAM_ES TINYTEXT, LONG_ES TINYTEXT, NAM_NL TINYTEXT, LONG_NL TINYTEXT, NAM_SE TINYTEXT, LONG_SE TINYTEXT, NAM_PL TINYTEXT, LONG_PL TINYTEXT, CONSTRAINT UC_Sprachen UNIQUE (FRAU, STYPE, BITVAL), CONSTRAINT PK_Sprachen PRIMARY KEY (FRAU, STYPE, BITVAL)) ENGINE=InnoDB;
Was mir den Fehler gibt keine Länge bei BITVAL angegeben zu haben.
Ändere ich BITVAL TINYTEXT zu BITVAL BIGINT kann ich die Tabelle erstellen.
Aber wie setzte ich bei meinem Insert into dann den Wert im PreparedStatement das es als BIGINT an die MariaDB übermittelt wird?
Danke,
Thomas
ich versuche gerade mir ein kleines Programm zu schreiben.
Erstellen der Tabellen funktioniert, mit der Ausnahme das (meine Einfache Lösung) ich ein Feld als TINYTEXT deklariert nicht als teil des Unique und Key benutzen kann.
Oder ich verstehe es einfach noch nicht ;-)
Also folgendes:
ich parse über Jsoup eine Webseite und erhalte dadurch eine Liste mit jeweils 2 Strings.
Der erste String ist eine Zahl "1", "2", "4" ....... bis hin zu "1099511627776"
Dies ist natürlich zu viel für ein "normales" Integer deshalb wollte ich es über BIGINT(MariaDB type) in die Tabelle schreiben.
Und dazu kommt der passende 2.te String aus dem Paar in ein TINYTEXT Feld.
Bei den Statement.setxxxxxx() finde ich keine entsprechende Methode um ein BIGINT als Value in das Statement zu übernehmen.
Deshalb wollte ich es mir einfach machen und es als Text speichern, scheitere dadurch aber am Unique bzw. Key, das es wohl Text dafür nicht mag.
Kann mir jemand erklären wie ich den String mit der Zahl mit welcher setxx methode verwenden kann ?
Die Tabelle erstelle ich mit
CREATE TABLE IF NOT EXISTS Sprachen (FRAU BOOLEAN, STYPE TINYINT, BITVAL TINYTEXT, NAM_DE TINYTEXT, LONG_DE TINYTEXT, NAM_EN TINYTEXT, LONG_EN TINYTEXT, NAM_IT TINYTEXT, LONG_IT TINYTEXT, NAM_FR TINYTEXT, LONG_FR TINYTEXT, NAM_ES TINYTEXT, LONG_ES TINYTEXT, NAM_NL TINYTEXT, LONG_NL TINYTEXT, NAM_SE TINYTEXT, LONG_SE TINYTEXT, NAM_PL TINYTEXT, LONG_PL TINYTEXT, CONSTRAINT UC_Sprachen UNIQUE (FRAU, STYPE, BITVAL), CONSTRAINT PK_Sprachen PRIMARY KEY (FRAU, STYPE, BITVAL)) ENGINE=InnoDB;
Was mir den Fehler gibt keine Länge bei BITVAL angegeben zu haben.
Ändere ich BITVAL TINYTEXT zu BITVAL BIGINT kann ich die Tabelle erstellen.
Aber wie setzte ich bei meinem Insert into dann den Wert im PreparedStatement das es als BIGINT an die MariaDB übermittelt wird?
Danke,
Thomas