Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Java]MySQL connectie met localhost is internet verplicht??

Pagina: 1
Acties:

  • Jochemmol
  • Registratie: Augustus 2004
  • Laatst online: 07-05-2014
Ik ben bezig met java i.s.m MySQL. Na een hoop gerommel met de mysql lib is het gelukt.

Ik had hem in jre/ext/lib gezet maar dat moest zijn. jvm/jre/ext/lib. Nu doet hij het.

Ik had een vraag.

Om de MySQL connectie tot stand te kunnen brengen doe ik dit
code:
1
2
      //Laad JDBC driver voor MySQL.
      Class.forName("com.mysql.jdbc.Driver").newInstance();

Mijn vraag is is dit een functie in de jar file of is dit een file op internet? :?

Jochemmol


  • Jaap-Jan
  • Registratie: Februari 2001
  • Laatst online: 18:44
Je moet weten hoe Java packages genoemd worden, die beginnen officieel bij de domeinnaam van de maker, in omgekeerde volgorde.

Hier dus ook. Nee, je hebt geen internetconnectie nodig en als je dat uitgeprobeerd had, was je daar ook zelf wel achter gekomen.

Misschien dat je ook wat hebt aan een linkje naar de JavaDoc voor Class.forname(). :)

[ Voor 25% gewijzigd door Jaap-Jan op 18-02-2008 12:09 ]

| Last.fm | "Mr Bent liked counting. You could trust numbers, except perhaps for pi, but he was working on that in his spare time and it was bound to give in sooner or later." -Terry Pratchett


  • NetForce1
  • Registratie: November 2001
  • Laatst online: 20-11 09:15

NetForce1

(inspiratie == 0) -> true

Dependencies opnemen in de extension dir van je jvm is niet echt een handige oplossing, als je je app naar een andere jvm wilt verplaatsen hang je. Het is beter om de jar op je classpath te zetten.
De code die post zorgt ervoor dat de driver implementatie mbv reflection geladen wordt, en dat de code in static blocks van die klasse uitgevoerd wordt. Niks op internet dus, com.mysql is simpelweg de packagestructuur waarin de driver zit, hoe dat werkt is genoeg over te vinden in zo'n beetje elke java tutorial / boek.

De wereld ligt aan je voeten. Je moet alleen diep genoeg willen bukken...
"Wie geen fouten maakt maakt meestal niets!"


  • Jochemmol
  • Registratie: Augustus 2004
  • Laatst online: 07-05-2014
Ik heb de mysql.jar in de map jvm/jre/ext/lib gezet vervolgens in windows bij omgevingsvariabelen heb ik een variabelen aangemaakt.

CLASSPATH met als waarde c:\program files\jvm\jre\ext\lib\mysql.jar

Toen pas deed hij het. Ik zou dus de waarde kunnen veranderen naar bv c:\mysql\mysql.jar?

Met die vraag loop ik rond. Als ik nu mijn programma compileer dan werkt hij perpeft op mijn computer. Als ik het nu run op een andere computer waar ook mysql op geinstalleerd is werkt het dan ook of moet ik dan per computer apart de mysql.jar toevoegen?

Of heb ik het concept mysql.jar verkeerd begrepen? Moet ik hem alleen installeren omdat ik aan het ontwikkelen ben. Of moet het echt per computer? :?

Jochemmol


  • verytallman
  • Registratie: Augustus 2001
  • Laatst online: 13-11 10:23
Je kan die package overal neerzetten waar je wil als je het maar aangeeft.
In mijn manifest.mf heb ik staan

Class-Path: lib/mysql-connector-java-5.1.5-bin.jar

Dus gewoon in een map waar me .jar file staat.

Wel zo handig als je het programma een keer aan iemand wil geven.

  • Confusion
  • Registratie: April 2001
  • Laatst online: 01-03-2024

Confusion

Fallen from grace

Jochemmol schreef op maandag 18 februari 2008 @ 12:02:
Om de MySQL connectie tot stand te kunnen brengen doe ik dit
code:
1
2
      //Laad JDBC driver voor MySQL.
      Class.forName("com.mysql.jdbc.Driver").newInstance();

Mijn vraag is is dit een functie in de jar file of is dit een file op internet? :?
Geen van beide: het is een klasse in de jar. Een klasse met de naam com.mysql.jdbc.Driver, oftewel: de klasse Driver in het com.mysql.jdbc package. Dat is de manier waarop in Java klassen logisch van elkaar gescheiden worden: door ze in een hierarchische packagestructuur onder te brengen.

Wie trösten wir uns, die Mörder aller Mörder?


  • Jochemmol
  • Registratie: Augustus 2004
  • Laatst online: 07-05-2014
verytallman schreef op maandag 18 februari 2008 @ 12:28:
Je kan die package overal neerzetten waar je wil als je het maar aangeeft.
In mijn manifest.mf heb ik staan

Class-Path: lib/mysql-connector-java-5.1.5-bin.jar

Dus gewoon in een map waar me .jar file staat.

Wel zo handig als je het programma een keer aan iemand wil geven.
Dit begrijp ik niet. Ik heb hem nu in mijn system vars gezet. Dat is dus niet handig omdat dat dus per computer zou moeten?
Jij heb hem in je manifest.mf gezet.

Is dat een onderdeel van je programma (project) waardoor hij mee gecompileerd word?
Dus moet je op de andere computer wel die driver in dezelfde map zetten? Of is je manifest.mf een map waardoor de jar file meegecompileerd word dus nooit meer per computer geinstalleerd hoeft te worden?
Hoe moet ik het nu aanpakken om die sistuatie voor elkaar te krijgen (mee compileren ipv apart te moeten installeren)

Jochemmol


  • Jochemmol
  • Registratie: Augustus 2004
  • Laatst online: 07-05-2014
Even gegoogeld. Je manifest.mf wordt autmotisch gemaakt als je de jar file maakt (project compileren?).
Als jij je programma naar een andere computer zet dan kopieer jij die hele map (dus jar file en de lib map) naar de andere computer. Door de info in je manifest.mf 'weet' de jar file waar die lib staat.

Je moet dit dus doen per project(programma). Maar je hoeft dan geen system vars classpath aan te maken in windows enz. Ik ga eens opzoek naar dat manifest.mf bestand. _/-\o_

Jochemmol


  • Kwistnix
  • Registratie: Juni 2001
  • Laatst online: 20-11 09:31
De Class-Path entry in Manifest.mf is handig voor distributables, maar daar heeft jouw IDE tijdens ontwikkeling niets aan. Die kan dan nog steeds afhankelijkheden niet resolven en de applicatie unpackaged draaien vanuit de IDE (als dat van toepassing is) werkt dan ook niet. Dit heb je nu omzeild door JAR files toe te voegen aan lib/ext (of toe te voegen aan het system classpath), maar dat is zeker niet handig. Daarmee krijg je met der tijd onherroepelijk allerlei class-loading ellende.
Je doet er beter aan om uit te zoeken hoe in jouw IDE het project specifieke classpath/buildpath geconfigureerd moet worden, of nog beter, kijk een naar een IDE onafhankelijke oplossing als ANT.

  • Jochemmol
  • Registratie: Augustus 2004
  • Laatst online: 07-05-2014
Oke ik ga even kijken op netbeans.org. Hoe deze IDE dit soort jar bestanden include.
Waarschijnlijk staat daar wel hoe ik voor dit project een classpath kan definieren.
Ik kan wel als het project klaar is de lib meeleveren in een extra map. Dan zou het wel moeten werken zonder IDE maar gewoon het jar bestand.

[ Voor 57% gewijzigd door Jochemmol op 18-02-2008 14:06 ]

Jochemmol


  • Remus
  • Registratie: Juli 2000
  • Laatst online: 15-08-2021
Als je in Netbeans een Jar in het buildpath van je project koppelt wordt deze standaard in de build opgenomen (en aan de manifest toegevoegd) in de folder lib van je build.

  • Jochemmol
  • Registratie: Augustus 2004
  • Laatst online: 07-05-2014
Oke. Ik heb even op netbeans.org gekeken.

Ik gebruik 6.0. Ik kon alleen wat voor 5.5 vinden.
http://www.netbeans.org/k.../project_setup.html#96961
En dan het gedeelte van CLASSPATH. En dan kies ik voor ADD JAR/folder. Dat zou het dan moeten zijn. :9

[ Voor 6% gewijzigd door Jochemmol op 18-02-2008 16:03 ]

Jochemmol


  • verytallman
  • Registratie: Augustus 2001
  • Laatst online: 13-11 10:23
Ik werk inderdaad met NetBeans, en bij een project kan je aangeven welke libraries erbij moeten zitten.
In feite past NetBeans volgens mij alleen het manifest.mf aan en doet de library in een folder erbij.
Dit kun je natuurlijk ook zelf doen lijkt mij. Je moet dan alleen opzoeken hoe je het manifest.mf maakt en samen met je files mee compileert.

  • Remus
  • Registratie: Juli 2000
  • Laatst online: 15-08-2021
Als een beginnende programmeur zou ik me daar nog geen zorgen over maken, en eerst gewoon genieten van het automagische gegenereerde ant-script van Netbeans.

Rommelen met buildscripts komt op een later wel (of niet).

  • YopY
  • Registratie: September 2003
  • Laatst online: 06-11 13:47
Als je al met buildscripts wilt gaan rommelen - managers als Maven voer je een lijst met externe afhankelijkheden in (zoals de MySQL drivers) en Maven downloadt het automagisch wanneer je programma opgestart wordt. Door middel van een console-commando (mvn package) wordt er ook een .jar bestand van je programma gemaakt, waarbij de verschillende externe dependencies (mysql drivers) ook automagisch meegenomen en meeverpakt worden.

Maar daarvoor is het handiger om een IDE als Netbeans of Eclipse te gebruiken, heb je ook geen gezeur meer met het instellen van je classpath (zolang je je programma vanuit die IDE draait). Zelfde met je programma en dergelijke in een .jar zetten.
Pagina: 1