Avatar billede dsj Nybegynder
31. marts 2002 - 19:13 Der er 33 kommentarer og
1 løsning

Setup af JDBC til Java

Jeg har lige downloadet en driver "mm.mysql-2.0.4-bin.jar" for at kunne tilgå en mysql-database.

Hvordan får jeg JBuilder(5) til at kunne finde og bruge denne jar-fil ?
Avatar billede soelvpil Nybegynder
31. marts 2002 - 21:36 #1
I JBuilder 6, skal man åbne properties for projektet. Her skal man tilføje den i "required libraries". Man definerer et nyt library, og fortæller hvor jar-filen er placeret.

Mon ikke det virker nogenlunde på samme måde i 5'eren.
Avatar billede dsj Nybegynder
31. marts 2002 - 22:02 #2
Jeg får følgende fejl (har gjort præcis som du skrev):

java.sql.SQLException: No suitable driver

...når jeg jeg kører:
dbHandler.open("org.gjt.mm.mysql.Driver","jdbc:mysql.adress.dk","user","pass");
Avatar billede dsj Nybegynder
31. marts 2002 - 22:07 #3
Nej vent, jeg lavede det om til:
dbHandler.open("org.gjt.mm.mysql.jdbc1","jdbc:mysql.adress.dk","user","pass");

... men så får jeg en anden fejlmeddelelse:
java.lang.ClassNotFoundException: org.gjt.mm.mysql.jdbc1
Avatar billede soelvpil Nybegynder
31. marts 2002 - 22:16 #4
Hmmmmmm.

Det lyder som en jar-fil bliver inkluderet rigtigt nok, for ellers ville du have fået en ClassNotFoundException.

Hmmmm.

Er du sikker på, at du angiver den rigtige url til databasen (jeg har ikke rodet med MySQL selv, men den adresse du skriver ser lidt sjov ud, er den rigtig?).

Ellers kan du evt prøve en printStackTrace() på din exception og se, om det kan kaste lys over, hvor fejlen opstår.
Avatar billede soelvpil Nybegynder
31. marts 2002 - 22:18 #5
Hov, havde ikke lige set din kommentar.

Jeg er ret sikker på, at det er "driver" versionen der skal arbejdes på, men at der er noget andet galt et eller andet sted.
Avatar billede soelvpil Nybegynder
31. marts 2002 - 22:32 #6
Har du prøvet med

dbHandler.open("org.gjt.mm.mysql.Driver","jdbc:mysql:adress.dk","user","pass");

altså kolon i stedet for punktum?
Avatar billede disky Nybegynder
31. marts 2002 - 23:18 #7
ret den til:
dbHandler.open("org.gjt.mm.mysql.Driver","jdbc:mysql://SERVERNAME","user","pass");

Så skulle det virke
Avatar billede dsj Nybegynder
01. april 2002 - 20:37 #8
hehe disky, jeg vidste jeg kunne aktivere dig med dette spørgsmål. Nåh, jeg bruger i hvert fald din dbHandler-klasse, hvor jeg kører følgende:

dbHandler.open("org.gjt.mm.mysql.Driver","jdbc:mysql://mysql.jepponet.dk","user","password");

Dette giver mig følgende fejl:
  java.sql.SQLException: No suitable driver

I min jar-fil "mm.mysql-2.0.4-bin.jar" findes nemlig heller intet "Driver"-bibliotek. Der findes kun de to biblioteker: "jdbc1" og "jdbc2". Er det mon den forkerte driver?
Avatar billede disky Nybegynder
01. april 2002 - 22:07 #9
i min er der en Driver.class fil
Avatar billede dsj Nybegynder
01. april 2002 - 22:55 #10
Ahhhh, det er der da også i min :) Jeg troede bare vi snakkede om biblioteker, ikke om klasser. Men fejlmeddelelsen er stadig:
    java.sql.SQLException: No suitable driver
Avatar billede disky Nybegynder
01. april 2002 - 22:59 #11
er den jar fil nævnt i din classpath ?

Ellers prøv at udpak den i din web-inf\classes dir på din server
Avatar billede dsj Nybegynder
01. april 2002 - 23:24 #12
Den er tilføjet til classpath ja!
Avatar billede disky Nybegynder
01. april 2002 - 23:26 #13
og du har ikke ændret i min dbHandler klasse ?
Avatar billede dsj Nybegynder
02. april 2002 - 00:33 #14
nix, skal jeg det?
Avatar billede dsj Nybegynder
02. april 2002 - 01:30 #15
Altså jeg har tilføjet jar-filen under "Projekt >> Required libraries" i JBuilder 5. Og den står på listen, så jeg går ud fra den er tilføjet rigtigt.
Avatar billede disky Nybegynder
02. april 2002 - 07:26 #16
Du skal tilføje den til den system specifikke CLASSPATH,

Hvis du bruger WIN2k skal du højre clicke på denne computer vælger egenskaber (properties), vælge avanceret, vælge miljø variabler (enviroment setting)

Så kigger du efter om der under system variabler er en der hedder CLASSPATH, er der ikke det lav en nye, og indtast den absolute path til din jar fil. Hvis den findes til føj ';' efterfulgt af den komplete path.
Avatar billede dsj Nybegynder
02. april 2002 - 08:27 #17
Det har jeg nu gjort, men fejlen er den samme. jar-filen er jo også tilføjet i JBuilder. Når jeg kører programmet fra JBuilder skriver den desuden:

... -classpath C:\Documents and Settings\myself\jbproject\clanmanager\mm.mysql-2.0.4-bin.jar

Så er det vel fordi JBuilder faktisk kan finde jar-filen?
Avatar billede disky Nybegynder
02. april 2002 - 09:39 #18
det skulle jeg da mene.

jeg kigger på det når jeg har fri
Avatar billede soelvpil Nybegynder
02. april 2002 - 10:27 #19
Meget mystisk...

JBuilder har hele tiden kunnet finde jar-filen, for ellers havde du fået en ClassNotFoundException. Men no suitable driver lyder mystisk.

Men her et lille forslag. Prøv at tilføje følgende linje til koden:

DriverManager.setLogStream(System.out);

et eller andet sted i koden før du forsøger at connecte til databasen. Det skulle give et billede af, hvad der går galt (måske). Ovennævnte metode er deprecated, men det skulle ikke betyde noget. Post evt nogle af

Du får vel også en stackTrace fra din exception, hvad siger den?
Avatar billede dsj Nybegynder
02. april 2002 - 12:43 #20
Din linje giver følgende output:

DriverManager.getConnection("jdbc:mysql://mysql.jepponet.dk")
    trying driver[className=org.gjt.mm.mysql.Driver,org.gjt.mm.mysql.Driver@54864a]
getConnection: no suitable driver

Og stackTrace giver følgende:
java.sql.SQLException: No suitable driver
    at java.sql.DriverManager.getConnection(DriverManager.java:537)
    at java.sql.DriverManager.getConnection(DriverManager.java:177)
    at clanmanager.dbHandler.open(dbHandler.java:33)
    at clanmanager.Mainframe.knap2_actionPerformed(Mainframe.java:369)
...

Kan problemet ikke skyldes at mit webhotel ikke understøtter denne driver, eller at driveren bare ikke er den rigtige? Skal jeg forsøge med en anden og hvilken? (En ældre evt.?)
Avatar billede disky Nybegynder
02. april 2002 - 14:33 #21
understøtter jepponet jsp ?

Hvis du kører det hjemme fra, skal du ikke regne med deres mysql server tillader adgang udefra.
Avatar billede dsj Nybegynder
02. april 2002 - 16:53 #22
Hvad er det lige jsp er og hvorfor skal jepponet understøtte det?
Avatar billede disky Nybegynder
02. april 2002 - 17:27 #23
jsp er 'Java Server Pages' Det er ligesom PHP til websider bare meget bedre.

Grunden til jeg spørger skyldes at jeg kan se du bruger jepponet's mysql server.

Har du mulighed for at sende dit kode til mig, så kigger jeg på det.
Avatar billede dsj Nybegynder
02. april 2002 - 17:39 #24
Hvad er det for noget kode du vil have, og hvor meget? Jeg bruger jo din dbHandler-klasse præcis som den er og skriver

dbHandler.open("org.gjt.mm.mysql.Driver","jdbc:mysql://mysql.jepponet.dk","user","password");

og fejlen dukker op. Andet er der egentlig ikke i det. Jeg har desuden lige skrevet til Jepponet for at få at vide, om de tillader adgang udefra samt understøtter JSP.
Avatar billede disky Nybegynder
02. april 2002 - 17:41 #25
JSP understøtter de ikke har jeg selv undersøgt :)

Det jeg nok ville gøre var at downloade Mysql og installere den på min maskine hvis jeg var dig.
Avatar billede soelvpil Nybegynder
02. april 2002 - 17:45 #26
Dette er bare et vildt gæt, men hvad sker der hvis du skriver

jdbc:mysql://mysql.jepponet.dk:3306 ?

Jeg har siddet og kigget lidt på driverens sourcekode, og den ser lidt sjov ud omkring parsingen af url-en.

>> disky: Du har garanteret tidligere selv haft driveren til at virke. Har du også prøvet at få den til at virke uden databasenavn (f.eks. localhost/minDB). Et kig kig på driverens sourcekode giver indtryk af, at den forventer enten et / (dbnavn) eller et : (portnr) efter hostnavnet (men kun et  meget kort kig).
Avatar billede dsj Nybegynder
02. april 2002 - 17:59 #27
Hvis jeg tilføjer et portnummer på får jeg følgende fejl:

java.sql.SQLException: Malformed URL 'jdbc:mysql://mysql.jepponet.dk:3306'

Problemet er nok som disky har antydet, at Jepponet ikke understøtter JSP, hvilket lidt er noget ****. Jeg har desuden snakket lidt med min programmeringslære som mener, at driveren er ok, men at problemet ligger i manglende understøttelse hos JeppoNet.

Kan vi alle være enige i den konklusion?
Avatar billede soelvpil Nybegynder
03. april 2002 - 08:59 #28
Ja, du bliver nok nødt til at opgive.

Jeg tror fejlbeskeden skyldes, at mySQL driveren forventer et databasenavn i urlen f.eks. jdbc:mysql://mysql.jepponet.dk/dbNavn.

Det kunne nok løses, f.eks. har webhotellet garanteret en odbc adgang til databasen, så man skulle kunne bruge sun's jdbc-odbc-bridge.

Det nytter dog nok ikke meget, når hotellet ikke understøtter JSP. I princippet kunne man godt kalde databasen udefra, det er dog nok mest sandsynligt, at jepponet har en firewall, der blokerer trafik direkte til databasen.
Avatar billede disky Nybegynder
03. april 2002 - 09:06 #29
dsj:
jeg så lige en fejl (tak soelvpil)

Det skal være:
dbHandler.open("org.gjt.mm.mysql.Driver","jdbc:mysql://SERVERNAME/DATABASENAVN","user","pass");

Hvor user og password er rettet til dine data.

Problemmet er nok at jepponet ikke tillader access udefra til deres databaser, hvilket også giver mening. Download mysql og prøv derhjemme


Soelvpil: odbc giver heller ikke adgang udefra.
Avatar billede disky Nybegynder
03. april 2002 - 09:06 #30
forresten er det ikke nødvendigt at angive portnummer.
Avatar billede dsj Nybegynder
03. april 2002 - 15:13 #31
Så nu virker det!! Det hjalp at putte databasenavnet på, så Jepponet må understøtte JSP, men det er kun godt :D

Tak for hjælpen i to, i har virkelig gjort meget ud af at svare på mit spørgsmål, med sølle 25 point i sigte - det er god holdning :)

Jeg synes i begge skal have point for hjælpen, så soelvpil jeg har oprettet er spørgsmål "Point til soelvpil". Hvis du lige går derind og laver et svar, får du også 25 point.
Avatar billede dsj Nybegynder
03. april 2002 - 15:18 #32
Tillykke disky, du er på top 10. Jeg kan også se at du "leger java" til hverdag. Er selv snart færdig med første år på datamatikerudd. - og Java er bare for sjaw. Lang tid siden du var i mili?? Var selv færdig med at skyde kampvogne i juni sidste år.

hyg jer og tak for hjælpen, jeg spørger nok snart igen...
Avatar billede disky Nybegynder
03. april 2002 - 16:01 #33
dsj:
Nej jepponet understøtter ikke JSP, men deres firewall/mysql er ikke sat sikkert op :( (men det er deres problem)

Det glæder mig det virker :)
Avatar billede disky Nybegynder
03. april 2002 - 16:02 #34
Hov mange tak for rosen :)

Ja java er et dejligt sprog at rode med.

Held og lykke på studiet.

Kampvogne har jeg aldrig skudt, men 6 år i flyvevåbnet var nok til mig :)
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