Gå til innhold

Hjelp med kobling av Java til MySQL med JDBC


Anbefalte innlegg

Hei!

 

Jeg lurer på om noen kan forklare hvordan dette fungerer. Jeg har lest rundt på mange sider, titta i manualer og testa mye forskjellig. Jeg bruker nå Java SDK 1.4.2_03 og har lastet ned Java-Connecter fra www.mysql.org. Har pakket ut denne inne i min java mappe; under lib/ext. Laget en global variabel CLASSPATH som er lik C:\Java\..\ext\ , her ligger com og org mappene fra JDBC'en fra mysql folkene. Så har jeg laget en kode som ser slik ut:

 

import java.sql.*;
public class FraBoka {

public static void main(String[] args) {
 Connection con = null;
 
 try{
 	//here is the JDBC URL for the database
 	String url = "jdbc:mysql://localhost?user=root&password=";
 	//More on what the Statement and ResultSet Classes do later
 	Statement stmt;
 	ResultSet rs;


 	Class.forName ("com.mysql.jdbc.Driver").newInstance();
 	// here is where the connection is made
 	con = DriverManager.getConnection(url);
 	
 	
 }
 catch( SQLException e ){
 	e.printStackTrace();
 }
 

 finally{
 	if( con != null){
   try{ con.close();}
   catch(Exception e){}
 	}
 }
}
}

 

Når jeg kjører denne, får jeg denne feilmeldingen:

java.lang.Error: Unresolved compilation problems: 
Unhandled exception type IllegalAccessException
Unhandled exception type InstantiationException
Unhandled exception type ClassNotFoundException

at FraBoka.main(FraBoka.java:17)
Exception in thread "main" 

 

Håper noen har noen tips til hva jeg kan ha gjort feil eller andre ting som må gjøres.

 

PS. kjører WinXP med MySQL kjørende på egen maskin.

 

nAz-guL :green:

 

EDIT: fiksa noe små greier

Endret av nAz-guL
Lenke til kommentar
Videoannonse
Annonse

Takk for tipset .. fikk meg en annen server med MySQL nå, så det er ikke noe problem.

 

Fikk ordnet problemet ved å føye til: "throws Exception" til klassen, vet ikke hvorfor da .. :roll:

Så hvis noen har lyst til å forklare det er de velkomne..

 

nAz-guL :green:

Lenke til kommentar
  • 4 uker senere...

Ganske enkel liten feil egentlig. Det som skjer er at noen av kalla dine kaster de tre exceptionane du fikk der uten at du behandler dem. Eneste du catcher er SQLException. Alle exceptions må enten behandles ELLER kastes vidre.

 

Det du gjør ved å legge til throws Exception til metoden er kort og godt bare å sende alle ubehandla feil oppover i systemet, i dette tilfellet helt opp til VM'en siden du her sitter med main classen i denne applikasjonen.

 

Hvis du legger til følgende:

catch (IllegalAccessException)
{
    System.out.println ("IllegalAccessException");
}
catch (InstantiationException)
{
    System.out.println ("InstantiationException");
}
catch (ClassNotFoundException)
{
    System.out.println ("ClassNotFoundException");
}

 

etter catch (SQLException){...} vil du få en mye snillere kode. Programmet vil fremdeles dø, men du kan nå gi vettuge tilbakemeldinger om hva som er feil.

 

Coq Rouge (catch alt av exceptions)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...