Toon posts:

java - mysql database connectie: "No suitable driver"

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben inmiddels de nodige uurtjes zoet met het volgende:

Ik heb op een redhat linux pc een mysql database draaien. Nu wil ik vanaf een andere computer met windows xp professional vanuit een java applicatie gegevens ophalen uit de database. Om dit te doen, heb ik de docs gevolgd die door mysql beschikbaar waren en de "mysql-connector-java-3.0.16-ga-bin.jar" en zelfse de 'com' directory hiervan in mijn classpath (environment variables) staan. Je zou dus verwachten dat hij kan worden meegeladen.

In mijn source code doe ik het volgende:

try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
System.out.println ("Jdbc driver loaded successfully!");
}
catch (ClassNotFoundException e){
e.printStackTrace();
}
catch (Exception me){
System.out.println ("Could not load jdbc driver...");
System.err.println(me.getMessage());
}
try {
Connection conn = DriverManager.getConnection("jdbc:msql://ipremotepc/database:3306","user","pwd");
}
catch (SQLException ex) { // handle any errors
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
}

/* try {

stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT user_firstname, location_id FROM users WHERE user_available=1");
String firstName = rs.getString("user_firstname");
if (firstName != null){
while ( rs.next() ) {
System.out.println("The database returned availability of: " + firstName);
String location = rs.getString("location_id");
System.out.println("The database returned location_id: " + location);
}//while
}//if
else if (firstName == null){
System.out.println("Nobody is at home...");
}//else if
conn.close();
}
catch (Exception e) {
System.err.println("Got an exception on the database query! ");
System.err.println(e.getMessage());
}


ik compileer op de volgende manier vanuit een batch bestandje:
c:\j2sdk1.4.2_05\bin\javac -classpath ".;mail.jar;activation.jar;" -d . *.java
pause

en run het programma vervolgens vanuit een batch bestandje als volgt:
C:\j2sdk1.4.2_05\bin\java -classpath ".;mail.jar;activation.jar;mysql-connector-java-3.0.16-ga-bin.jar" IndependantController
pause

Ik heb de mysql connector hier dus voor de zekerheid nogmaals meegeladen.

Echter, telkens wanneer de database query moet worden gedaan, dan krijg ik de melding:
"No suitable driver"

Zoeken op GoT en google heeft mij niet het gewenste resultaat opgeleverd. Er wordt telkens naar dingen als het classpath verwezen, maar dat moet volgens mij nu goed staan.

Zijn er mensen die tips hebben waar het aan kan liggen?

  • bodiam
  • Registratie: December 2001
  • Laatst online: 31-12-2024
[b][message=22411942,noline]
en de "mysql-connector-java-3.0.16-ga-bin.jar" en zelfse de 'com' directory hiervan in mijn classpath (environment variables) staan. Je zou dus verwachten dat hij kan worden meegeladen.
Geen idee wat je daarmee bedoelt.

Doe gewoon 'java -cp mysql-connector-java-3.0.16-ga-bin.jar:<rest van je classpath> JavaFile' en het werkt wel.

Niets met environment variables, etc, gewoon met de hand aanroepen. Mocht je een webapp aan het bouwen zijn, plaats hem dan in WEB-INF/lib, dan wordt hij automatisch wel voor je gevonden.

[edit]
|:(
Oeps, even te snel gereageerd, excuses. Ik had je 2de deel niet gezien, maar zou je toch eens kunnen uitleggen wat je met het eerste deel, over die com dir en environment variabeles bedoelt??

Tijdens het compileren is je lib overigens niet nodig, die wordt pas geladen bij je Class.forName tijdens het uitvoeren....(en die newInstance is niet nodig). Die Class.forName werkt heel anders. Het zorgt er voor dat de driver zich automatisch registreert bij de DriverManager...

[ Voor 41% gewijzigd door bodiam op 22-12-2004 16:04 ]


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Je kunt via je System.properties ook de classpath opvragen die je applicatie gebruikt. Als je deze string ff afdrukt dan zie je tenminste wat je systeem weet.

En welkom bij de jar hel :P

[quote]
http://www.science.uva.nl...applet/ui/properties.html

[ Voor 20% gewijzigd door Alarmnummer op 22-12-2004 16:07 ]


  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
code:
1
2
Connection conn = DriverManager.getConnection("jdbc:msql://ipremotepc/database:3306","user","pwd");
                                                    ^

lijkt me dat daar mysql moet staan he :)

Verwijderd

Topicstarter
maar zou je toch eens kunnen uitleggen wat je met het eerste deel, over die com dir en environment variabeles bedoelt??
ik bedoel de classpath settings in windows, die je in kan stellen (via rechtermuisklik op) 'deze computer->system->advanced->environment variables'. Hiermee kan je alle mogelijke classpath mappen aangeven heb ik begrepen en gaan java dus hier in ieder geval zoeken naar mee te linken files.

Terwijl ik dit bericht zit te typen kijk voor een volgende quote, zie ik ineens de helden opmerking van marcusk
lijkt me dat daar mysql moet staan he
Ongelooflijk! Wat een irritant foutje!! :( 8)7 :'( |:( Dit heeft me dus echt nagenoeg de hele dag gekost...Onwijs bedankt allemaal!! en marcusk in het bijzonder _/-\o_ _/-\o_

  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

En hoe voel je je dan? :+

edit:
'k had overigens dezelfde fout gezien, maar zag toen dat marcusk me reeds voor was

[ Voor 66% gewijzigd door -FoX- op 22-12-2004 16:31 ]


Verwijderd

Topicstarter
-FoX- schreef op woensdag 22 december 2004 @ 16:30:
En hoe voel je je dan? :+

edit:
'k had overigens dezelfde fout gezien, maar zag toen dat marcusk me reeds voor was
tja, dat is niet zo vriendelijk uit te drukken O-)

Ik 'Carpe' maar een andere 'diem' (om in jouw termen te blijven ;) )
Pagina: 1