2012-03-30 7 views
-2

Ich bin neu in Java, und ich brauche Hilfe. Ab drei Stunden kämpfe ich mit Datenbankverbindung. Zuerst erstelle ich ein Projekt und lade Treiber herunter und entpacke sie in meinen Projektordner. Nach diesem gefunden Code, Update von meiner Datenbank-Adresse, Benutzername, Passwort und in meinem Projekt. Jetzt habe ich eine Datei: MysqlConnect.java:Java - mySql Datenbankverbindung

/* 
* To change this template, choose Tools | Templates 
* and open the template in the editor. 
*/ 
package jdbc; 

/** 
* 
* @author Administrator 
*/ 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.ResultSetMetaData; 
import java.sql.SQLException; 
import java.sql.Statement; 

public class JDBC { 

public static void main(String[] args) { 

    // LADOWANIE STEROWNIKA 
    System.out.print("Sprawdzanie sterownika:"); 
    try { 
     Class.forName("com.mysql.jdbc.Driver").newInstance(); 
    } catch (Exception e) { 
     System.out.println("Blad przy ladowaniu sterownika bazy!"); 
     System.exit(1); 
    } 
    System.out.print(" sterownik OK"); 

    // LACZENIE Z BAZA 
    System.out.print("\nLaczenie z baza danych:"); 
    String baza = "jdbc:mysql://db41032162719.db.1and1.com/db41032162719"; 
    // objasnienie opisu bazy: 
    // jdbc: - mechanizm laczenia z baza (moze byc inny, np. odbc) 
    // mysql: - rodzaj bazy 
    // //olimp.if.pw.edu.pl - adres serwera z baza (moze byc tez w formie adresu IP) 
    // /pojava - nazwa bazy (poniewaz na serwerze moze byc kilka roznych baz...) 
    String user = "dbo41032162719"; 
    String pass = "Zasypiam3141"; 
    java.sql.Connection conn = null; 
    try { 
     conn=DriverManager.getConnection(baza, user, pass); 
     //rownoznacze z zapisem: 
     //conn=DriverManager.getConnection("jdbc:mysql://olimp.if.pw.edu.pl/pojava?user=pojava&password=Java"); 
    } catch (SQLException e) { 
     System.out.println("Blad przy ladowaniu sterownika bazy!"); 
     System.exit(1); 
    } 
    System.out.print(" polaczenie OK\n"); 

    // WYKONYWANIE OPERACJI NA BAZIE DANYCH 
    System.out.println("Pobieranie danych z bazy:"); 
    Statement s = null; 
    try { 
     s = conn.createStatement(); // tworzenie obiektu Statement przesylajacego zapytania do bazy conn 
     ResultSet r;     
     r=s.executeQuery("Select * from meteo;"); // wykonanie kwerendy i przeslanie wynikow do obiektu ResultSet 
     r.next();   // przejscie do kolejnego rekordu (wiersza) otrzymanych wynikow 

     ResultSetMetaData rsmd = r.getMetaData(); 
     int numcols = rsmd.getColumnCount(); // pobieranie liczby kolumn 

     //wyswietlanie nazw kolumn: 
     for (int i = 1; i <= numcols; i++) { 
     System.out.print(rsmd.getColumnLabel(i)+" | "); 
     } 
     System.out.print("\n------------------------------------\n"); 

     //wyswietlanie kolejnych rekordow: 
     while (r.next()) { 
      for (int i = 1; i <= numcols; i++) { 
       Object obj = r.getObject(i); 
       if (obj != null)System.out.print(obj.toString()+ " | "); 
       else System.out.print(" "); 
       } 
      System.out.println(); 
     } 
    } catch (SQLException e) { 
     System.out.println("Blad odczytu z bazy! " +e.toString()); 
     System.exit(3); 
    } 

    // ZAMYKANIE POLACZENIA Z BAZA 
    System.out.print("\nZamykanie polaczenia z baza:"); 
    try { 
     s.close(); 
     conn.close(); 
    } catch (SQLException e) { 
     System.out.println("Blad przy zamykaniu polaczenia " +e.toString()); 
     System.exit(4); 
    } 
    System.out.print(" zamkniecie OK"); 
} 

}

Und ich habe Fehler:

run: 
Exception in thread "main" java.lang.ExceptionInInitializerError 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:186) 
    at jdbc.JDBC.main(JDBC.java:24) 
Caused by: java.lang.RuntimeException: Uncompilable source code -  com.mysql.jdbc.NonRegisteringDriver is not abstract and does not override abstract method  getParentLogger() in java.sql.Driver 
    at com.mysql.jdbc.NonRegisteringDriver.<clinit>(NonRegisteringDriver.java:69) 
    ... 3 more 
Sprawdzanie sterownika:Java Result: 1 
BUILD SUCCESSFUL (total time: 7 seconds) 

Ich suche etwas über mein Problem im Internet Kampf alles davon funktioniert nicht lösen :( Wenn jemand mir helfen werde ich verpflichtet werden. Ich denke, das Problem ist nicht in Code, weil ich versuchte, drei anodische Codes von Google und alle gleichen Fehler. Ich legte meinen Fehler in Google, aber es war nur 1 Ergebnis vom russischen sitzen e ..

+0

Diese Methode wurde in Java 1.7 eingeführt. Versuchen Sie, eine Java 1.6-Umgebung auszuführen. Ich frage mich jedoch, warum es für dich gescheitert ist. Obwohl die neueste MySQL JDBC JAR-Datei 5.1.8 für Java 1.6 geschrieben wurde, sollte sie in Java 1.7 genauso gut funktionieren. Wie genau kompilieren/ausführen Sie es? Mit etwas IDE? Haben Sie oder die IDE nicht die MySQL-JAR-Datei extrahiert und alle Inhalte aus einem unklaren Grund neu gegen Java 1.7 gepackt/neu kompiliert? – BalusC

+0

Ich benutze Netbeans IDE 7.1. Ich füge mysql-onnector-java.5.1.18.zip zu den Bibliotheken im linken Panel auf Netbeans hinzu, auch lege ich alle Ordner von Zip in meinen Paketordner. – user1304098

+0

@ user1304098: Hat einer der Kommentare/Antworten geholfen? Hast du das Problem selbst gelöst? – atk

Antwort

1

Basierend auf http://www.java-forums.org/java-applets/45434-error-connection-mysql.html haben Sie wahrscheinlich eine Diskrepanz zwischen Ihrer JRE und der Version des Treibers, den Sie verwenden.

Welche Version von jedem verwenden Sie? Für welche Version der JRE wurde der Treiber kompiliert?

BEARBEITEN ... Sie erwähnten, dass Sie mysql conector/j 5.1.18 mit JRE 1.7 verwenden. Gemäß http://dev.mysql.com/doc/refman/5.0/en/connector-j-versions-java.html wird MySQL 5.1 nur unter JRE/JDK 1.5 und 1.6 unterstützt. Wenn Sie & mit der richtigen Version kompilieren, werden Sie wahrscheinlich die Ausnahme loswerden.

+0

Mysql-Konnektor 5.1.18, und was ist JRE? Ich benutze NetBeans IDE 7.1 – user1304098

+0

Beide Versionen sind die neuesten. – user1304098

+0

@ user1304098 JRE = Java Runtime Environment, bezieht sich auf die Java Virtual Machine + die Standard-Java-Bibliotheken. Sie können die Version Ihrer Standard-JRE überprüfen, indem Sie in der Befehlszeile "java -version" ausführen. Hier ist die Befehlszeilenreferenz für Windows: http://docs.oracle.com/javase/6/docs/technotes/tools/windows/java.html – Stefan

Verwandte Themen