Das ist kein Postgres Fehler. Das ist eine ganz normale Exception von printf() die Dir sagt, dass Dein Format-String falsch ist.
Hallo Forum,
ich habe eine Javaanwendung geschrieben, die PostgreSQL bzw. PostGIS ansprechen soll.
Wenn ich eine einfache Anfrage ohne PostGIS-Komponenten stelle funktioniert auch alles einwandfrei, wenn ich nun jedoch eine räumliche Anfrage stelle, erhalte ich sämtliche Fehler.
Ich habe bereits den BUilding Path ergänzt um die im Unterodner zu findene postgis-jdbc.jar ergänzt.
Meines erachtens habe ich auch alle SDtellen geändert jedoch kommt dennoch ein Fehler.
Vielleicht kann mir jemand von euch Helfen.
Zu erst mein Code:
und der Fehlerbericht:Code:import java.awt.EventQueue; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import org.postgis.*; public class database { String driver = "org.postgresql.Driver"; // -------------------------------------------------------------------------- String host = "localhost"; // !!! anpassen !!! String port = "5432"; // !!! anpassen !!! String database = "postgis"; // !!! anpassen !!! String user = "postgres"; // !!! anpassen !!! String password = "postgres"; // !!! anpassen !!! // -------------------------------------------------------------------------- Connection connection = null; /** * Constructor */ public database () { loadJdbcDriver (); openConnection (); showTimezones (); closeConnection (); } /** * close the connection */ private void closeConnection () { try { connection.close (); } catch (SQLException e) { e.printStackTrace (); System.exit (1); } System.out.println ("\nconnection closed"); } /** * @return Url-string for postgreSQL-database connection */ private String getUrl () { // PostgreSQL takes one of the following url-forms: // ================================================ // jdbc:postgresql:database // jdbc:postgresql://host/database // jdbc:postgresql://host:port/database return ("jdbc:postgresql:" + (host != null ? ("//" + host) + (port != null ? ":" + port : "") + "/" : "") + database); } /** * loading the JDBC driver */ private void loadJdbcDriver () { try { Class.forName (driver); } catch (ClassNotFoundException e) { e.printStackTrace (); System.exit (1); } System.out.println ("driver loaded"); } /** * opening the connection */ private void openConnection () { try { connection = DriverManager.getConnection (getUrl (), user, password); } catch (SQLException e) { e.printStackTrace (); System.exit (1); } System.out.println ("connection opened"); } /** * show the weatherstation next to the coordinats */ private void showTimezones () { try { Statement statement = connection.createStatement (); //ResultSet resultSet = statement.executeQuery ("select * from weatherstations where kategorie = 'BY'order by weatherstations limit 1"); ResultSet resultSet = statement.executeQuery ("SELECT station,file, distance(PointFromText('POINT(0 0)', 900913),transform(the_geom,900913)) as b FROM weatherstations order by b limit 1"); ResultSetMetaData resultSetMetaData = resultSet.getMetaData (); System.out.println ("\n\nshow data from table: 'Wetterstationen'\n"); String format = "%35s %-6s %10s %s\n"; System.out.printf (format + "\n", resultSetMetaData.getColumnLabel (1), resultSetMetaData.getColumnLabel (2), resultSetMetaData.getColumnLabel (3)); //resultSetMetaData.getColumnLabel (4)); while (resultSet.next ()) { System.out.printf (format, resultSet.getString (1), resultSet.getString (2), resultSet.getString (3)); //resultSet.getString (4)); } resultSet.close (); statement.close (); } catch (SQLException e) { e.printStackTrace (); System.exit (1); } } public static void main (String[] args) { EventQueue.invokeLater (new Runnable () { public void run () { database database = new database (); System.exit (0); } }); } }
vielen DankCode:Exception in thread "AWT-EventQueue-0" java.util.MissingFormatArgumentException: Format specifier 's' at java.util.Formatter.format(Formatter.java:2432) at java.io.PrintStream.format(PrintStream.java:920) at java.io.PrintStream.printf(PrintStream.java:821) at database.showTimezones(database.java:154) at database.<init>(database.java:43) at database$1.run(database.java:189) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) at java.awt.EventQueue.dispatchEvent(EventQueue.java:597) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Das ist kein Postgres Fehler. Das ist eine ganz normale Exception von printf() die Dir sagt, dass Dein Format-String falsch ist.
A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'
vielen dank klappt ja plötzlich doch wunderbar*G*
Links: Tobias Bauer - IT- und Funkdienstleistungen - Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen - Funkforum
Lesezeichen