polaczenie z postgresem

0

hej!
jestem nowa na forum wiec wpierw chcialam wszystkich przywitac:)
nie znalazlam u Was dzialu dla poczatkujacych wiec z gory przepraszam za watek ktory wiem ze wystepowal juz nie raz. jesli chodzi o java to jestem zdecydowanie poczatkujaca, stad pewnie moje problemy. przejrzalam pare podobych tematow u Was na forum, a takze na paru innych stronach ktore znalazlam na google, jednak dalej nie moge sobie poradzic.
mam maly aplet w javie, ktory po nacisnieciu przycisku 'szukaj' ma polaczyc mnie z baza i pokazac jakies wyniki. albo chociaz na poczatku polaczyc.
probowalam na dwa sposoby, jednen znalazlam u Was:

//jesli klikniemy na szukaj to pobieraja sie dane z bazy
     class ZdarzenieSzukaj implements ActionListener
     {  public void actionPerformed(ActionEvent zdarzenie) {
    
Class.forName("org.postgresql.Driver");
Properties prop=new Properties();
prop.setProperty("user","postgres");
prop.setProperty("password","");
Connection connDriverManager.getConnection("jdbc:postgresql://127.0.0.1/test");
Statement stm=conn.createStatement();
ResultSet set=stm.executeQuery("SELECT id,imie,nazwisko FROM t_osoba ORDER BY nazwisko");
while(set.next()){
        Long id=set.getLong(1);
        String imie=set.getString(2);
        String nazwisko=set.getString(3);
        new Person(id,imie,nazwisko);
}
set.close();
stm.close();
            }

pokazuje mi sie jednak blad :
Connection connDriverManager.getConnection("jdbc:postgresql://127.0.0.1/test");
i tu chcialam sie tez spytac w jaki sposob tworzy sie ten url: jdbc//127.0.0.1/test
tzn. test jest to nazwa mojej bazy. czy ja musze cos gdzies dodac/dopisac by bylo wiadomo z jakiej bazy korzystac ma aplet?

drugi spoob ktory probowalam wykorzystac:

//jesli klikniemy na szukaj to pobieraja sie dane z bazy
     class ZdarzenieSzukaj implements ActionListener
     {  public void actionPerformed(ActionEvent zdarzenie) {
  try{
  Class.forName("org.postgresql.Driver");
  System.out.println("This is only a test!");
   
  }
       catch(Exception wyjatek)
        {
            System.out.println("Blad wczytywania sterownika!");
            return;
        }
String URL ="jdbc:postgresql://127.0.0.1/test";
String username = "postgresql";
String password ="";
Statement s=null;
Connection polaczenie = null;
  
try {
    polaczenie=DriverManager.getConnection(URL, username, password);
   s=polaczenie.createStatement();
  System.out.println("Polaczono!");  
  


}   catch(Exception wyjatek)
    {   System.out.println("Blad polaczenia");
    
    }

        }
     }

tu nie mam zadnych bledow podczas kompilacji, jednak na stronie nie pojawia sie nic. tj,po nacisnieciu na 'szukaj' nie dostaje zadnego info czy polaczono czy nie..

czy ktos moglby mi z tym pomoc i wytlumaczyc co jest nie tak? i jeszcze raz przepraszam za tak banalny watek..
Pozdrawiam!

0

Pierwsze jest złe bo obiektu prop nie przekazujesz jako drugiego argumentu do metody getConnection(), drugie jest ok ale chyba hasło nie może być puste i pewnie dlatego jest problem z połączeniem ;-)

0

wiec w pierwszym poprawilam:

Connection connDriverManager.getConnection("jdbc:postgresql://127.0.0.1/test,prop");

nadal jednak jest:

Connection connDriverManager.getConnection("jdbc:postgresql://127.0.0.1/test,prop");

wiec spytam jeszcze raz: czy problem nie lezy w tym url?

0

Nie tak:

Connection connDriverManager.getConnection("jdbc:postgresql://127.0.0.1/test,prop");

tylko tak:

Connection connDriverManager.getConnection("jdbc:postgresql://127.0.0.1/test",prop);

Hasło już ustawiłeś jak trzeba? Jeszcze jedno lepiej zrób blok wyjątku tak:

catch(Exception wyjatek){  
 e.printStackTrace();
}
0

zrobilam jak mowiles, dodalam tez haslo (btw. nie wiedzialam ze haslo jest wymagane, akurat u siebie nie potrzebuje hasla na baze bo robie lokalnie, no ale niech bedzie).
dalej jednak mam ten sam blad. generalnie jeszcze mi pokazuje caly czas ze:

/home/postgres/projekty/Projekt01/src/Projekt01/TestowyApplet.java:106: ';' expected
Connection connDriverManager.getConnection("jdbc:postgresql://127.0.0.1/telemedycyna",prop);
1 error

no i jak klikam na blad to przyczepia mi sie dokladnie do tego fragmentu:

.getConnection("jdbc:postgresql://127.0.0.1/telemedycyna",prop);

i wola ze chce tam srednika :|

0

O jezu nie zauważyłem, że nie masz znaku = , powinno być tak:

Connection conn=connDriverManager.getConnection("jdbc:postgresql://127.0.0.1/test",prop);
0

i teraz posypalo sie pare innych bledow:)
wszedzie o tresci cannot find symbol:

symbol  : class Properties
location: class TestApplet.ZdarzenieSzukaj
Properties prop=new Properties();
symbol  : class Properties
location: class TestApplet.ZdarzenieSzukaj
Properties prop=new Properties();
symbol  : class Person
location: class TestApplet.ZdarzenieSzukaj
        new Person(id,imie,nazwisko);
0

Na początku kodu zaimportuj potrzebne klasy w ten sposób:

import java.util.Properties;

I też zaimportuj klasę Person.

0

klasy Person nie posiadam, bede musiala poszukac, mam nadz ze wtedy zadziala..

0

nie moge znalezc tej klasy w dostepnych bibliotekach:/ ktos moze wie gdzie moge ja znalezc?
a jesli chodzi o ten drugi sposob, to zauwazylam ze ten sterownik w ogóle sie nie laduje. bo jak zrobie np cos takiego:

 class ZdarzenieSzukaj implements ActionListener
     {  
         
         public void actionPerformed(ActionEvent zdarzenie) {
    class ZdarzenieSzukaj implements ActionListener
     {  
         
         public void actionPerformed(ActionEvent zdarzenie) {
           
  try{
      
  JButton
          guziks;
          guziks = new JButton("This is only a test2!");
add(guziks);
guziks.setBounds(300,300,20,20);      
  
    Class.forName("org.postgresql.Driver");
  }
       catch(Exception wyjatek)
        {
            System.out.println("Blad wczytywania sterownika!");
            return;
        }
String URL ="jdbc:postgresql://127.0.0.1/telemedycyna";
String username = "student";
String password ="biomed";
Statement s=null;
Connection polaczenie = null;
  
try {
    polaczenie=DriverManager.getConnection(URL, username, password);
   s=polaczenie.createStatement();
  System.out.println("Polaczono!");  
 
}   catch(Exception wyjatek)
    {   System.out.println("Blad polaczenia");
 }
 }
 }

i tu po nacisnieciu przycisku 'szukaj' pojawia sie nastepny 'this is only a test'
jednak jak tylko zamienie kolejnoscia:

 try{
      
    Class.forName("org.postgresql.Driver");
  JButton
          guziks;
          guziks = new JButton("This is only a test2!");
add(guziks);
guziks.setBounds(300,300,20,20);      
  }

guzik sie juz nie pokazuje, tak samo zaden z komunikatow. rozumiem ze w takim razie cos jest nie tak ze sterownikiem? sciagnelam z neta w wersji: postgresql-8.2-506.jdbc4.jar
i dodalam do projektu, wiec nie wiem-co moze byc nie tak, ze ten sposob tez nie laczy mnie z baza?

0

Sam już nie wiem co ty robisz :/ napisz z jakiego IDE korzystasz, podaj cały kod, oraz to czy się skompilowało i jakie błędy podczas działania ci się pojawiają?

0

system operacyjny: linux (slackware w wer.11), baza: postgresql, pisze w netbeans.
jeszcze raz:
mam aplet, jest na nim przycisk 'szukaj', jak go klikne to chce sie polaczyc z baza i pobrac dane, a na razie poki co to polaczyc. nie mialam na poczatku sterownika dla postgresa, ale sciagnelam:
postgresql-8.2-506.jdbc4.jar i dolaczylam do netbeans (chociaz nie jestem pewna czy we wlasciwe miejsce)
blad nie pojawia mi sie przy kompilacji zaden. ale jak klikne na 'szukaj' na pojawia sie nic, zaden napis ze polaczono czy nie. kod:

  class ZdarzenieSzukaj implements ActionListener 
      {  
           
          public void actionPerformed(ActionEvent zdarzenie) { 
  try 
  { 
       
   Class.forName("org.postgresql.Driver"); 
 
     
   } 
        catch(Exception wyjatek) 
         { 
             System.out.println("Blad wczytywania sterownika!"); 
             return; 
         } 
 String URL ="jdbc:postgresql://127.0.0.1/projekt"; 
 String username = "student"; 
 String password ="haslo"; 
 Statement s=null; 
 Connection polaczenie = null; 
   
 try { 
     polaczenie=DriverManager.getConnection(URL, username, password); 
    s=polaczenie.createStatement(); 
   System.out.println("Polaczono!");  
   
 }   catch(Exception wyjatek) 
     {   System.out.println("Blad polaczenia"); 
     
   } 
  }}

no i generalnie jestem pewna prawie ze cos jest nie tak z tym sterownikiem (pewnie w zlym miejscu go mam albo co?) i ze sie nia laduje. zrobilam cos takiego ze chcialam wywolac jakakolwiek akcje wywolana nacisnieciem przycisku 'szukaj' przed i po zaladowaniu sterownika:

try 
  { 
       
   JButton 
           guziks; 
           guziks = new JButton("This is only a test!"); 
 add(guziks); 
 guziks.setBounds(300,300,20,20);      
   Class.forName("org.postgresql.Driver");  
     
   }

i tu, jak klikne na 'szukaj' pojawi mi sie drugi przycisk (this is only a test), jesli jednak sprobuje wpierw zaladowac sterownik:

try 
  { 
       
   Class.forName("org.postgresql.Driver");
   JButton 
           guziks; 
           guziks = new JButton("This is only a test!"); 
 add(guziks); 
 guziks.setBounds(300,300,20,20);      
     
   }

to po wcisnieciu przycisku 'szukaj' nic sie nie dzieje.
rozumiesz o co mi chodzi?

0

w sumie to dodalam nie tak ten sterownik. teraz dodalam go jako zewnetrzna biblioteke javy, jednak tym razem otrzymuje taki komunikat:

Non-existing path "/home/postgres/projekty/Projekt/${libs.jdbc.classpath}" provided.

do czego ma byc ten classpath? do sterownika?

1 użytkowników online, w tym zalogowanych: 0, gości: 1