1

Temat: Problem z odczytaniem tabeli w javie

Witam

   Mam problem z wykonaniem selecta na tabeli w Postgresie. Podłączenie do bazy przebiega poprawnie. Odczytuje bieżący czas z serwera bazy, a w momencie wykonania Selecta do tabeli wali błędem. Zaznaczam że tabela H istnieje w schemacie public.

Proszę o pomoc.



Kod programu:

    private static void baza()
    {
        String url = "jdbc:postgresql://localhost/my";
        Properties props = new Properties();
        props.setProperty("user","postgres");
        props.setProperty("password","postgre");
        //props.setProperty("ssl","true");
        try {
            Connection conn = DriverManager.getConnection(url, props);
            System.out.println("Połączenie do Postgres OK.");
            Statement stmt = conn.createStatement();           
            ResultSet rs;
            PreparedStatement ps ;
            //ps = conn.prepareStatement("Select * from T1");
            rs = stmt.executeQuery("Select Now()");
            rs.next();
            System.out.println("Time:   "+rs.getString(1));
            stmt.executeQuery("Select * from  H");
            while (rs.next())
            {
                String sss = "A"+""+rs.getString(1);
                System.out.println(sss);
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


Błąd:

Połączenie do Postgres OK.
Time:   2011-02-18 20:42:54.437+01
org.postgresql.util.PSQLException: ERROR: relation "h" does not exist
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2102)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1835)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:500)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:374)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:254)
    at Fglowna.baza(Fglowna.java:50)
    at Fglowna.main(Fglowna.java:70)

2

Odp: Problem z odczytaniem tabeli w javie

No to pytanie czy istnieje h czy H.
Czy czasem jak tworzyłeś table to czasem nie napisałeś nazwy tabeli w cudzysłowie znaczy

create table "H"....

bo jeśli tak to aby odczytać zawartość takiej tabeli musisz napisać

select * from "H"

a to nie to samo co

select * from H

3

Odp: Problem z odczytaniem tabeli w javie

Zgadza się H to nie to samo co "H". Zmieniłem składnię zapytania na

String mojsql = "Select * from \"T1\"";
rs = stmt.executeQuery(mojsql);

.... i wszystko działa.

Dziękuję za pomoc Temat uważam za zamknięty.

Pozdrawiam

4

Odp: Problem z odczytaniem tabeli w javie

Cześć. Chce zrobić coś takiego, że łącze się z serwerem bazy i bez wyboru bazy danych. I wtedy jak się połącze selectuje wszystkie bazy do których mam prawa przynajmniej do odczytu.

5

Odp: Problem z odczytaniem tabeli w javie