Avatar billede kirky Nybegynder
17. november 2001 - 13:48 Der er 23 kommentarer og
1 løsning

JDBC driver til MySQL

Hvordan opstiller man en MySQL database på en server, så man kan tilgå den via nettet vha. Java\'s JDBC driver?

Hvilke filer skal der ligge på serveren? og hvor skal de ligge?
Avatar billede nute Nybegynder
17. november 2001 - 15:06 #1
Avatar billede disky Nybegynder
17. november 2001 - 15:09 #2
du downloader en mysql jdbc driver, adder den til din classpath, og så kan du tilgå mysql fra dit Java program, hvis du kigger lidt i denne gruppe kan du finde min database handler klasse, som er blevet postet mange gange efterhånden
Avatar billede kirky Nybegynder
17. november 2001 - 15:13 #3
Vi ved godt det med classpath, men problemet ligger i hvordan man sætter en server op med MySQL til at håndtere Java. Skal der installeres noget på serveren, for at Java kan kommunikere med MySQL databasen??
Avatar billede nute Nybegynder
17. november 2001 - 15:19 #4
mysql er fullstendig likegyldig med hvem som snakker til den. om det er java, php eller asp. kommunikasjonen foregår via SQL...
Avatar billede kirky Nybegynder
17. november 2001 - 15:49 #5
okay. Hvorfor melder den så fejl, når jeg forsøger at få adgang til den? Hvad skal sættes op på ens egen computer, for at man kan teste om ens javakode dur på ens MySQL database. Jeg har installeret MySQL, Apache, PHP4 samt PHPMyAdmin til at styre databasen med. Er der andet man skal have for at kunne få det til at køre?
Avatar billede ricki Nybegynder
17. november 2001 - 19:21 #6
Din java-applikation skal jo bruge JDBC, så det er den der skal vide hvor en sådan JDBC driver ligger... og det er vist det disky forsøgte at sige...
Hvis det er fordi du ikke kan finde en JDBC-drivert til MySQL så kan du finde en på http://www.mysql.com/Downloads/Contrib/mm.mysql-2.0.4-bin.jar
Avatar billede kirky Nybegynder
17. november 2001 - 22:52 #7
Det har jeg også. Bare ikke lige den version. Driveren fungere godt nok. Men når jeg kører filen, så skriver den: Exception in thread \"main\" java.lang.NoClassDefFoundError: DBConnect

Koden er vedlagt, og den er lige efter bogen. Jeg ved bare ikke hvad problemet er med den, og hvorfor den melder fejl

import java.sql.*;

public class DBConnect {
  public static void main(String[] args) {

    // Load the driver
    try {

      // Loader driverfilen til MySQL
      Class.forName(\"org.gjt.mm.mysql.Driver\");


      String sourceURL = \"jdbc:mysql:@fyr.cs.auc.dk:3306:XXXXX\";
      String user = \"XXXXX\";
      String password = \"XXXXX\";

      // Opretter en forbindelse til databasen ved hjælp af DriverManager
      Connection databaseConnection =
        DriverManager.getConnection(sourceURL, user, password);

      // Bekræfter at der er hul igennem til databasen
      System.out.println(\"Forbindelse opnået\");

      // lukker forbindelsen
      databaseConnection.close();
    }
      catch (ClassNotFoundException cnfe) {
      System.err.println(cnfe);
    }
      catch (SQLException sqle) {
      System.err.println(sqle);
    }
  }
}
Avatar billede ricki Nybegynder
17. november 2001 - 23:40 #8
Det lader til at du aldrig får startet den virtuele maskine, da den ikke kan finde din klasse DBConnect....
Det har ikke noget at gøre med at du står et forkert sted i forhold til hvad din classpath siger?
Et godt råd når man leger med java er at tilføje et . i sin classpath. Det betyder nemlig at den mappe man står i vil være i classpath.
Når du har dette så stiller du dig i samme mappe som din klasse DBConnect og prøver at køre den igen
Avatar billede kirky Nybegynder
18. november 2001 - 00:39 #9
Jeg har aldrig haft dette problem før med den. Jeg ved ikke om det er fordi jeg bruger en for gamle JDBC driver til MySQL. Den hedder 1.2 der er vist også en 2.0. Hvad angår classpath\'en så har en et . med i den. Du kan se den her: set classpath = c:\\j2sdk1.4.0\\;c:\\j2sdk1.4.0\\lib\\dt.jar;c:\\j2sdk1.4.0\\lib\\tools.jar;C:\\mm.mysql.jdbc-1.2c;.;

Hvor skulle jeg stå henne for at få det til at køre? Min Nørdus Maximus lærer kunne heller ikke lige finde problemet. Men han sagde at det måtte skyldes et opsætningsproblem.
Avatar billede ricki Nybegynder
18. november 2001 - 01:10 #10
Om du bruger 1.2 eller 2.0 skulle ikke være problemet... efter hvad jeg lige husker er der ikke lavet nogle ændringer i den del af driveren du benytter.
Nu forsøgte jeg selv lige din kode, og fik ganske som jeg havde forventet en:
java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver
Hvilket skyldes at jeg ikke har den JDBC-driver.
Men dette er jo ikke samme fejl som du fik... din fejl gik jo på at den ikke kunne finde DBConnect... så det må skyldes at du står forkert i din dos-promt når du forsøger at køre programmet.
Prøv at stille dig i det katalog som filen DBConnect.java og DBConnect.class findes i og skriv:
java DBConnect
Avatar billede kirky Nybegynder
18. november 2001 - 01:14 #11
Det har jeg gjort. Jeg har lagt filen på roden af C og prøvet at køre den, og den laver den samme fejl som altid. Hvad kan det ellers være? Kan det skyldes at jeg kører JDK 1.4 beta? Det skulle jo ikke have nogen betydning
Avatar billede ricki Nybegynder
18. november 2001 - 01:21 #12
hmmm... nej det skulle ikke have noget at sige... men man ved jo aldrig... skulle bare være meget underligt.

-Lige et meget dumt spørgsmål... du har vel kompileret den?
Ellers vil jeg godt indrømme at jeg er ved at være temmelig blank....
Avatar billede ricki Nybegynder
18. november 2001 - 01:21 #13
-forresten har du prøvet at genstarte efter du har ændret din classpath?
Avatar billede kirky Nybegynder
18. november 2001 - 01:27 #14
yep den er kompileret og jeg har prøvet at genstarte computeren, selvom det ikke skulle være nødvendig i 2000. Det kan være at jeg skal prøve at installere JDK 1.3 bare for at prøve, og så slette den gamle classpath, og så bare tilføje hvor driveren ligger i den nye, og så se om det fungere.
Avatar billede ricki Nybegynder
18. november 2001 - 12:10 #15
hov jeg kommer lige til at se i din classpath at du ikke har skrevet hvor selve jar-filen, men kun hvor den er placeret. I java betragtes en jar-fil som et katalog og du skal derfor i din classpath medtage navnet på jar-filen.
Faktisk skulle det være nok at din classpath er:
set classpath = .;C:\\mm.mysql.jdbc-1.2c
Hvor du selvfølgelig skal rette stien til JDBC-driveren som nævnt overfor.
Det at man angiver de tre andre stier til nogle ting i JSDK\'en var kun nødvendigt i version 1.1.*, men det skyldes nok at det er en gammel bog du har :-)
Avatar billede kirky Nybegynder
18. november 2001 - 12:21 #16
okay til det med de gamle jar-filer, og ja det er lidt at en dårlig bog jeg har at gå udfra! :o)

Hvad jeg ikke forstår er det første. Du skriver at jeg skal skrive den fulde sti til jar-filen (hvilket jeg godt ved). Men den driver har aldrig været en jar fil. Den var bare zipped. Men den nyere version af driveren til MySQL er en jar. Hvad skal jeg så skrive i koden, hvis jeg vil prøve at benytte den nye driver, hvis jeg ligger dens jar-fil i lib under jdk biblioteket?
Avatar billede ricki Nybegynder
18. november 2001 - 12:44 #17
en jar fil er faktisk også bare en zip-fil :-)
-de hedder bare .jar for at gøre det lettere at se at det er et \"Java Archive\".

Hvis du henter den nyeste MM.MySQL JDBC-driver, kan du finde dokumentation til den her:
http://mmmysql.sourceforge.net/doc/mm.doc/book1.htm
Der er også beskrevet hvordan du bruger den
Avatar billede kirky Nybegynder
18. november 2001 - 13:08 #18
tak for linket og der er heller ikke driveren der er problemet, hvilket også ville have været meget mærkeligt! Nogle andre forslag til hvad problemet er?
Avatar billede ricki Nybegynder
18. november 2001 - 13:11 #19
nej desværre, jeg er blank....
Avatar billede kirky Nybegynder
18. november 2001 - 13:14 #20
Det er der ikke noget at gøre ved. Jeg må spørge nogle nørder i morgen så! tak for hjælpen
Avatar billede disky Nybegynder
18. november 2001 - 22:46 #21
kirky din sourceUrl er ikke i et gyldigt format
Avatar billede ricki Nybegynder
18. november 2001 - 23:55 #22
Disky: er du sikker?
-JDBC 1.2 bruger andet format end det der skal bruges til 2.0

MEN... hvis vi siger der er fejl i det format, så skulle det ikke løse problemet med at den virtuelle maskine ikke kan finde klassen DBConnect
Avatar billede ricki Nybegynder
19. november 2001 - 00:07 #23
Hov disky... jeg forsøgte lige selv at hente den driver du har fat i, altså 1.2\'en, og du skal lige pakke den ud... og så prøv at følg den manual du finder i det udpakkede, under kataloget \"doc\", der er også et lille eksempel du kan prøve.

Hvis du ikke ved hvordan du får filen pakket ud så kunne jeg gøre det med WinZip
Avatar billede kirky Nybegynder
25. november 2001 - 11:55 #24
Problemet var med SourceURL\'en. Formatet var ugyldigt, også selv om jeg havde fulgt et eksempel fra nettet af. SÅ det må have været driveren der var problemet
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester