Sortierung von Umlauten, MySQL 5.7, COLLATE, jdbc
Verfasst: Montag 13. März 2023, 11:12
Hallo miteinander!
Ich habe eine Frage zur Änderung der Sortierung bei der Anzeige von Mitgliedern in einem Formular.
Ich habe ein Formular erstellt, das Mitgliedernamen und andere Daten auflistet. Die Daten für die Anzeige sind das Ergebnisse von Datenbankabfragen, die in Lesefeldern stattfinden und als Formularfelder eingebunden werden.
In der Ergebnisliste werden die Umlaute ä, ö, ü nicht wie erwartet sortiert. Die Namen mit Umlauten werden also wie
Name
=====
Bad
Bae
Baf
Bäd
sortiert. Der relevante Code im Lesefeld ist
Die COLLATE-Anweisung ändert das Ergebnis nicht.
Der Server (MySQL 5.7) hat die Systemvariablen (laut MySQL Workbench 8.0)
collation_connection, collation_database und collation_server
alle auf
latin1_swedish_ci stehen.
Die jdbc-Anweisung unter "C:\Program Files\jameica\cfg" (alles Windowsclients) heißt:
Mir ist auch nach der Internetsuche nicht klar, an welcher Schraube ich drehen muß, um die Telephonbuchsortierung einzuschalten. Oder muß ich die Tabellen in der Datenbank alle auf die andere Collation umstellen?
Vielen Dank für Eure Hinweise
GV
Ich habe eine Frage zur Änderung der Sortierung bei der Anzeige von Mitgliedern in einem Formular.
Ich habe ein Formular erstellt, das Mitgliedernamen und andere Daten auflistet. Die Daten für die Anzeige sind das Ergebnisse von Datenbankabfragen, die in Lesefeldern stattfinden und als Formularfelder eingebunden werden.
In der Ergebnisliste werden die Umlaute ä, ö, ü nicht wie erwartet sortiert. Die Namen mit Umlauten werden also wie
Name
=====
Bad
Bae
Baf
Bäd
sortiert. Der relevante Code im Lesefeld ist
Code: Alles auswählen
DBIterator itm = Einstellungen.getDBService().createList( Mitglied.class );
itm.addFilter( " ( austritt IS NULL OR austritt >= ? ) ", new Object[] { new java.sql.Date( System.currentTimeMillis() ) } );
itm.join( " adresstyp " );
// ... noch mehrere filter, joins und limit
itm.setOrder( " ORDER BY name, vorname COLLATE latin1_german2_ci" );
Der Server (MySQL 5.7) hat die Systemvariablen (laut MySQL Workbench 8.0)
collation_connection, collation_database und collation_server
alle auf
latin1_swedish_ci stehen.
Die jdbc-Anweisung unter "C:\Program Files\jameica\cfg" (alles Windowsclients) heißt:
Code: Alles auswählen
database.driver.mysql.jdbcurl=jdbc\:mysql\://127.0.0.1\:3306/jverein?useUnicode\=Yes&characterEncoding\=ISO8859_1
Vielen Dank für Eure Hinweise
GV