problem z baza oraz dostep do zmiennych miedzy klasami

0

hejka,
Wlasciwie to mam 2 pytania:
1.probuje sie polaczyc z baza (mysql) ale sa problemy z url.. po kolei. kod:


   class DataBaseConnector { 
 
 public static final String DBDriver = "com.mysql.jdbc.Driver"; 
 public static final String URL = "jdbc:mysql://localhost/test"; 
 public static final String DBUser = "misty"; 
 public static final String DBPassword = ""; 
 
 }
   

dalej, proba polaczenia sie:


class InsertData { 
 
 public InsertData() {} 
 
  public void InsertChosenData() { 
   try{ 
   Class.forName(DataBaseConnector.DBDriver); 
 
    System.out.println("Mysql driver ok!"); 
          } 
       catch(Exception exc_driver) { 
        System.out.println("Something is wrong with mysql driver... "+exc_driver); 
 
           } 
 
 
        try { 
         Connection con = DriverManager.getConnection( 
         DataBaseConnector.URL, 
         DataBaseConnector.DBUser, 
         DataBaseConnector.DBPassword 
         ); 
 
             System.out.println("Get connection ok!"); 
                } 
 
 catch(Exception exc_connection) { 
 System.out.println("Cannot get connection... "+exc_connection); 
 
 } 
 Statement s = con.createStatement(); 
 
 }} 
 
 

dostaje jednak blad:

Cannot get connection... com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

tylko dlaczego? co jest nie tak z
public static final String URL = "jdbc:mysql://localhost/test"; ?

z konsoli moge sie normalnie polaczyc..

sterownik mam w /usr/lib/jre/lib/ext
ale w sumie sterownika sie nie czepia..

  1. Drugie pytanie tyczy sie dostepu do zmiennych pomiedzy klasami. Mam 2 klasy, kazda z nich ma jakies funkcje. Chcialabym, gdy utworze w klasie drugiej obiekt klasy pierwszej, miec dostep do zmiennych/obliczonych wartosci z pewnej metody z klasy pierwszej.
    w skrocie wyglada to tak:

   class Pierwsza{ 
 
 public void RozneDane() { 
 
 // jakies tam operacje, a na koncu mam zmienne ktore beda mnie pozniej 
 //interesowaly 
 
 String wazna_zmienna = new String("jakas_wartosc"); 
 
 } 
 
 } 
 
 
 //teraz klasa druga 
 class Druga 
 { 
 
    public void CzytajDaneZKlasyPierwszej() 
     { 
   //jakies tam operacje. i teraz chce miec dostep do strina wazna_zmienna z 
   // klasy Pierwsza 
 
       Pierwsza nowy_obiekt = new Pierwsza(); 
       nowy_obiekt.RozneDane; 
 
 // JAK MAM TERAZ ZROBIC BY STWORZYC NOWEGO STRINGA I PRZYPISAC MU 
 //WARTOSC wazna_zmienna Z PIERWSZEJ KLASY? 
 
 
 } 
 
 } 
 

bede wdzieczna za wszelkie sugestie,
pzdr,
misty

0

ad2.
napisz metodę get() w pierwszej klasie i zwróć w niej this.wazna_metoda -chyba o to Ci chodzi?

0

tak, z tym juz sobie poradzilam, ale dzieki za odp:)

problem caly czas mam z tym polaczeniem..

0

Połaćzenia z bazą w javie to masakra. Ja z Mysql sobie poradziłem jakoś ale teraz utknąłem z Derby...

0

lool, a masz jakis przykladowe pare swoich linijek, cobym mogla porownac? moze akurat udaloby sie zlokalizowac blad u mnie..

0
package desktopapplication1;

import java.sql.*;
public class Konektor {
    Connection conn = null;
    Statement s;
    
    public Konektor(){
        try
           {
               String userName = "root";
               String password = "111111";
               String url = "jdbc:mysql://localhost/robboh_gregor";
               try{
                Class.forName ("com.mysql.jdbc.Driver").newInstance ();
                
               }catch(Exception ex) {
                        ex.printStackTrace();
               }    
               conn = DriverManager.getConnection (url, userName, password);
               System.out.println ("Database connection established");
                            
             
           }
           catch (Exception e)
           {
               System.err.println ("Cannot connect to database server");
           }
           finally
           {
               if (conn != null)
               {
                   try
                   {
                      // conn.close ();
                       System.out.println ("Database connection terminated");
                   }
                   catch (Exception e) { /* ignore close errors */ }
               }
           }      
        
    }
    
    public ResultSet select(String sql){
          ResultSet rs;
          
          try{
              s = conn.createStatement();
              s.executeQuery(sql);
              rs = s.getResultSet();
             // s.close();
          }catch(Exception er){
           System.err.println ("Wystapil blad bazy danych: "+er);
           rs = null;
        }
    return rs;
    } 
    
}

Masz jak Ci to coś pomoże.
Ja już sam nie wiem co wiem , a czego nie wiem.
Przed chwilą pozmieniałem nazwy wszystkich driverów mysql, nie mam ścieżki CLASSPATH w zmienych środowiskowych, a aplikacja biega pod netbeansem i łączy się z mysql

0

a powiedz mi jeszcze jaka masz wersje mysql-a i javy? oraz jesli mozesz, podaj mi pelna nazwe sterownika(z wersja)

pzdr

0

juz wiem!
otoz trzeba bylo skonfigurowac mysqla..
w /etc/rc.d/rc.mysqld zahaszować linijkę SKIP=--skip-networking i zrestartować mysql ...

i dziala:)

dziekuje za pomoc i rady!

0

Gdzie występuje ta ścieżka?

0

w moim slacku :)

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