Ergebnis 1 bis 3 von 3

Thema: postgresql/postgis mit jdbc ansprechen

  1. #1
    ballibum ist offline Benutzer
    Registriert seit
    27.04.2009
    Beiträge
    31

    Standard postgresql/postgis mit jdbc ansprechen

    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:

    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);
          }
        });
      }
    }
    und der Fehlerbericht:
    Code:
    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)
    vielen Dank

  2. #2
    castorp ist offline Erfahrener Benutzer
    Registriert seit
    27.06.2009
    Beiträge
    525

    Standard

    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?'

  3. #3
    ballibum ist offline Benutzer
    Registriert seit
    27.04.2009
    Beiträge
    31

    Standard

    vielen dank klappt ja plötzlich doch wunderbar*G*

Ähnliche Themen

  1. Microsoft SQL Server mit ODBC ansprechen und in PG Admin einbinden
    Von trojannus im Forum externe Schnittstellen
    Antworten: 0
    Letzter Beitrag: 04.01.2012, 21:20
  2. Antworten: 1
    Letzter Beitrag: 23.03.2011, 17:02
  3. Frage Transaction JDBC Postgresql 8.X
    Von seawolf im Forum Programmierung
    Antworten: 2
    Letzter Beitrag: 09.12.2010, 11:46
  4. In Triggerfunktion ein externes Skript ansprechen
    Von TDevMent im Forum Trigger und Funktionen
    Antworten: 3
    Letzter Beitrag: 18.10.2008, 20:26
  5. Startup für PostgreSQL + JDBC + Eclipse
    Von fristo im Forum Häufig gestellte Fragen (FAQ)
    Antworten: 0
    Letzter Beitrag: 18.10.2007, 04:30

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum