Java JDBC

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Hi Javaianer,

    ich hätte da ein Problem.

    Ich vesuche eine Verbindung auf meine mySQL Datenbank zu erstellen,
    jedoch kennt mein Java Code den Treiber nicht.

    Daraufhin habe ich den Connector runtergeladen, jedoch weiß ich nicht,
    wie ich den Treiber (Win XP, Eclipse) installieren kann.

    Bitte um Hilfe!

    MfG

    ZuPerMan
  • Fehlermeldung beim Compilieren !!!

    Quellcode

    1. java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    2. at java.net.URLClassLoader$1.run(Unknown Source)
    3. at java.security.AccessController.doPrivileged(Native Method)
    4. at java.net.URLClassLoader.findClass(Unknown Source)
    5. at java.lang.ClassLoader.loadClass(Unknown Source)
    6. at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    7. at java.lang.ClassLoader.loadClass(Unknown Source)
    8. at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    9. at java.lang.Class.forName0(Native Method)
    10. at java.lang.Class.forName(Unknown Source)
    11. at JShop.init(JShop.java:18)Could not connect to database!
    12. at sun.applet.AppletPanel.run(Unknown Source)
    13. at java.lang.Thread.run(Unknown Source)
    14. java.sql.SQLException: No suitable driver
    15. at java.sql.DriverManager.getConnection(Unknown Source)
    16. at java.sql.DriverManager.getConnection(Unknown Source)
    17. at JShop.init(JShop.java:24)
    18. at sun.applet.AppletPanel.run(Unknown Source)
    19. at java.lang.Thread.run(Unknown Source)
    Alles anzeigen
  • Ich habe den Connector runtergeladen und entpackt.

    Daraufhin habe ich meinem Projekt durch IMPORT, die .bin Datei hinzugefügt.

    Jetzt habe ich nur noch diese Meldung, aber trotzdem habe ich keinen Treiber
    laut Fehlermeldung:

    Quellcode

    1. java.sql.SQLException: No suitable driver
    2. at java.sql.DriverManager.getConnection(Unknown Source)
    3. at java.sql.DriverManager.getConnection(Unknown Source)
    4. at JShop.init(JShop.java:24)
    5. at sun.applet.AppletPanel.run(Unknown Source)
    6. at java.lang.Thread.run(Unknown Source)
  • Quellcode

    1. import java.applet.Applet;
    2. import java.sql.*;
    3. public class JShop extends Applet{
    4. String raw = new String();
    5. public void init(){
    6. try {
    7. try {
    8. Class.forName("com.mysql.jdbc.Driver");
    9. } catch (ClassNotFoundException e) {
    10. // TODO Auto-generated catch block
    11. e.printStackTrace();
    12. }
    13. Connection cn = DriverManager.getConnection("localhost", "root@localhost", "playstation");
    14. Statement state = cn.createStatement();
    15. ResultSet res = state.executeQuery("SELECT * FROM Produkt");
    16. raw = res.getString("NAME");
    17. System.out.println(raw);
    18. cn.close();
    19. } catch (SQLException e) {
    20. // TODO Auto-generated catch block
    21. e.printStackTrace();
    22. System.out.println("Could not connect to database!");
    23. }
    24. }
    25. }
    Alles anzeigen

    Obwohl ich eine Fehlermeldung bekomme, bekomme ich die Ausgabe:

    "Could not connect to database!" .
  • 1. Wie willst du das Programm starten?
    aus ner Entwicklungsumgebung raus (z.B. Eclipse) oder von der Komandozeile?

    Eclipse:
    mysql-connector-java-5.0.3-bin.jar in den "Java Build Path" hinzufügen

    Kommandozeile:
    java -cp PATH-TO/mysql-connector-java-5.0.3-bin.jar ...

    Beispiel-Methode zum Connecten

    Quellcode

    1. private Connection createConnection() throws SQLException{
    2. logger.config("createConnection()");
    3. try{
    4. Class.forName(config.getProperty("db.db"));
    5. }
    6. catch(ClassNotFoundException ex){
    7. throw new SQLException("Could not load DB Driver!");
    8. }
    9. Connection connection = DriverManager.getConnection(config.getProperty("db.driver"),
    10. config.getProperty("db.user"), config.getProperty("db.password"));
    11. return connection;
    12. }
    Alles anzeigen


    Wobei
    "db.db" durch "com.mysql.jdbc.Driver"
    "db.driver" durch "jdbc:mysql://127.0.0.1:3306/" + die DATENBANK die verwendet werden soll
    "db.user" und "db.password" sollten selbsterklärend sein

    Verwendung

    createConnection().createStatement().execute("sql");
    wird verwendet, wenn kein Ergebnis zurückgeliefert wird (z.B. bei INSERT usw.)

    ResultSet r = createConnection().createStatement().executeQuery("sql);
    wenn es sich um ein SELECT handelt

    Kannst auch nen ConnectionPool verwendet. Es gibt "vorgefertigte" z.B. bei Tomcat oder schaust im Forum nach, da hab ich sowas gepostet.

    mfg
  • Die Datei mysql-connector-java-[version]-bin.jar kannst du im Ordner JRE_HOME/lib/ext/ ablegen, dann wird die Klasse com.mysql.jdbc.Driver ganz automatisch ohne Angabe irgendeines Classpath gefunden.

    Dafür muss du jetzt nur ermitteln, wo sich das JRE auf deinem Rechner befindet. Bei meinem SuSE-Linux führe ich das Shell-Kommando

    env | grep -i java

    aus und schaue mir an, welcher Pfad in JRE_HOME eingetragen ist:
    JRE_HOME=/usr/lib/jvm/java/jre

    Also lege ich mysql-connector-java-[version]-bin.jar im Pfad /usr/lib/jvm/java/jre/lib/ext/ ab.

    Siehe auch http://javawiki.hampelratte.de/index.php?page=Classpath
    Gutes Wetter, reiche Ernte.