2017-05-11 6 views
-1

ich bin neu in java. Ich versuche, MySQL DB in Javajava mysql db verbindung

Ich habe dieses

mysql.java file:

package program; 

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 
import java.util.Properties; 

public class mysql { 
     private static final String DATABASE_DRIVER = "com.mysql.jdbc.Driver"; 
     private static final String DATABASE_URL = "jdbc:mysql://mysql.cba.pl:3306/dbname"; 
     private static final String USERNAME = "login"; 
     private static final String PASSWORD = "pass"; 
     private static final String MAX_POOL = "250"; 

    private Connection connection; 
    private Properties properties; 

    private Properties getProperties() { 
     if (properties == null) { 
      properties = new Properties(); 
      properties.setProperty("user", USERNAME); 
      properties.setProperty("password", PASSWORD); 
      properties.setProperty("MaxPooledStatements", MAX_POOL); 
     } 
     return properties; 
    } 

    public Connection connect() { 
     if (connection == null) { 
      try { 
       Class.forName(DATABASE_DRIVER); 
       connection = DriverManager.getConnection(DATABASE_URL, getProperties()); 
      } catch (ClassNotFoundException | SQLException e) { 
       e.printStackTrace(); 
      } 
     } 
     return connection; 
    } 

    public void disconnect() { 
     if (connection != null) { 
      try { 
       connection.close(); 
       connection = null; 
      } catch (SQLException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 

}

Haupt-Java-Datei:

package program; 

public class main { 

    public static void main(String[] args){ 
     mysql db = new mysql(); 
     db.connect(); 
    } 

} 

und ich bekomme folgende Fehler

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 
at java.net.URLClassLoader.findClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Unknown Source) 
at komunikator.mysql.connect(mysql.java:31) 
at komunikator.main.main(main.java:7) 

Ich heruntergeladen ojdbc6-11.2.0.2.0.jar und in meinem Projektordner, danach ich Bibliothek aus JAR-Datei hinzufügen. Was mache ich falsch? ich in Java wirklich neu bin, so kann ich jemand hoffe mich auch :)

ich Eclipse-Standard/SDK

Version helfen kann, bin mit: Kepler Veröffentlichung Build-ID: 20130614-0229

+0

Duplikat von http://StackOverflow.com/Questions/1585811/ClassnotFoundexception-Com-Mysql-Jdbc-Triver - Sie könnten eine Lösung aus den Antworten dort finden! –

+1

Mögliches Duplikat von [ClassNotFoundException com.mysql.jdbc.Driver] (http://stackoverflow.com/questions/1585811/classnotfundexception-com-mysql-jdbc-driver) – Antimony

Antwort

0

Sie müssen den com.mysql.jdbc_5.1.5 Treiber für die mysql-Verbindung verwenden und die JAR-Datei in den Ordner WEB-INF>Lib einfügen und den Pfad der JAR-Datei in property> buildpath verwenden und externes jar verwenden.

+0

'WEB-INF'? Wer hat etwas über eine Webanwendung gesagt? – avojak

+0

dann wer sagte, es ist keine Webanwendung oder es ist Desktop-Anwendung – Sharma

+0

Nichts in der Frage zeigt an, dass es ist.Wenn Sie eine Antwort geben, die spezifisch für eine Webanwendung ist, möchten Sie vielleicht sicherstellen, dass das OP zuerst eine Webanwendung erstellt. – avojak

0

wird es eine normale Desktop-Anwendung

ok sein, ich es auf com.mysql.jdbc_5.1.5 Treiber geändert, füge ich dies in Projektpfad mit anderen .java-Dateien und hinzugefügt wie u in Eigenschaften gesagt. Jetzt bin immer ich dies:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 

Last packet sent to the server was 0 ms ago. 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
    at java.lang.reflect.Constructor.newInstance(Unknown Source) 
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) 
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074) 
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2104) 
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:729) 
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
    at java.lang.reflect.Constructor.newInstance(Unknown Source) 
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) 
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302) 
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:283) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at program.mysql.connect(mysql.java:32) 
    at program.main.main(main.java:7) 
Caused by: java.net.ConnectException: Connection refused: connect 
    at java.net.DualStackPlainSocketImpl.connect0(Native Method) 
    at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source) 
    at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) 
    at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) 
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source) 
    at java.net.PlainSocketImpl.connect(Unknown Source) 
    at java.net.SocksSocketImpl.connect(Unknown Source) 
    at java.net.Socket.connect(Unknown Source) 
    at java.net.Socket.connect(Unknown Source) 
    at java.net.Socket.<init>(Unknown Source) 
    at java.net.Socket.<init>(Unknown Source) 
    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256) 
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:276) 
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2027) 
    ... 13 more 

Ist mysql.java Datei korrekt?

Edit: Ich habe versucht, diese Änderung

private static final String DATABASE_DRIVER = "com.mysql.jdbc.Driver"; 

auf

"com.mysql.jdbc_5.1.5.Driver" 

und ich bin gettin einige weniger Fehler

java.lang.ClassNotFoundException: com.mysql.jdbc_5.1.5.Driver 
at java.net.URLClassLoader.findClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Unknown Source) 
at program.mysql.connect(mysql.java:31) 
at program.main.main(main.java:7) 
0

Ok, habe ich das fast bekam. Eine Sache mehr. Wenn im zu Online-Verbindungsversuch DB Ich habe dies:

SQLException: Communications link failure 

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. 
SQLState: 08S01 
VendorError: 0 

auf localhost DB (xamp) es funktioniert gut
, was los ist?