Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  11 1275
Hei, jeg skal prøve å hente ut data fra en mySQL database med java i forbindelse med en skole oppgave, men jeg klarer ikke det, og lurer på om noen her kan hjelpe meg.
Når jeg kjører programmet får jeg:"java.sql.SQLException: No suitable driver found for jdbc:mysql://(skjuler resten av denne)"

Databasen er bygd opp slik:
SPOILER ALERT! Vis spoiler

CREATE TABLE `resultater` (
`id` INT NOT NULL AUTO_INCREMENT ,
`countrycode` CHAR(2) NOT NULL ,
`level` INT NOT NULL ,
`sesong` INT NOT NULL ,
`dato` CHAR(10) NOT NULL ,
`hlag` VARCHAR(20) NOT NULL ,
`blag` VARCHAR(20) NOT NULL ,
`hmaal` INT NOT NULL ,
`bmaal` INT NOT NULL ,
PRIMARY KEY (`id`) );


Java koden jeg har så langt er: (PS: Jeg bruker NetBeans)

Kode

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package weedly;

import java.beans.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 *
 * @author weedly
 */
public class weedly {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws SQLException {
        String url ="jdbc:mysql://(skjuler resten av denne)";
        Connection con;
        Statement st;
        ResultSet rs;
        try{
            con = DriverManager.getConnection(url);
            
            st = (Statement) con.createStatement();
            rs = st.executeQuery("SELECT * FROM resultater");
            
            while (rs.next()){
                // Hente verdier
                int sesong  = rs.getInt("sesong");
                String hlag = rs.getString("hlag");
                String blag = rs.getString("blag");
                
                int hmaal = rs.getInt("hmaal");
                int bmaal  = rs.getInt("bmaal");
                
                // Vise verdier
                System.out.println("Sesong: " + sesong);
                System.out.println("hlag: " + hlag);
                System.out.println("blag: " + blag);
                System.out.println("hmaal: " + hmaal);
                System.out.println("bmaal: " + bmaal);
             }
        }
        catch(SQLException ex){
                System.out.println(ex);
        }
        
    }
}
Sist endret av WeeDLY; 6. april 2013 kl. 13:53.
Du har glemt brukernavn og passord i jdbc-strengen?
Skal være '"jdbc:mysql://host", user, pass'

Eventuelt bruker en jdbc-driver uten mysql-støtte?
Sist endret av Goophy; 6. april 2013 kl. 14:05.
Trådstarter
32 3
Nei, jeg har med brukernavn og passord så er 100% sikker på at det ikke er noe problem med strengen. Det er skolen som ga oss den og navnet på tabellen så den har nok mysql støtte.
Fikk en error av netbeans her: rs = st.executeQuery("SELECT * FROM resultater");
Error beskjeden:
"cannot find symbol
symbol: method executeQuery(String)
location: variable st of type Statement"
Sist endret av WeeDLY; 6. april 2013 kl. 14:10.
Bea
Big Bad Wolf
Bea's Avatar
Hvilken JDBC driver bruker du? Hvor har du lagt denne driveren?
Trådstarter
32 3
Jeg vet ingenting om driveren da det er skolen som hoster og ga oss jdbc connection strengen.
Slik ser jdbc connection strengen ut:
jdbc:mysql://frigg.hiof.no/bsdiverse?user=student&password=student
Bea
Big Bad Wolf
Bea's Avatar
Så du har ingen JDBC driver på ditt system? Da kan det høres ut som det er problemet.
Last ned en MySQL JDBC driver og gjør den tilgjengelig for class pathen til prosjektet.
Trådstarter
32 3
Tror ikke det er nødvendig for meg å ha en mysql jdbc driver, da jeg kobler meg til skolen via vpn når jeg skal prøve å hente ut dataene fra databasen. Er ganske sikker på at det er selve koden som er problemet.
Bea
Big Bad Wolf
Bea's Avatar
Jeg fikk samme feilmelding som du nevner i første post, men når jeg lastet ned MySQL JDBC driver å gjorde denne tilgjengelig på Class path fikk jeg ikke det lengre, men heller:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

Sitat av http://stackoverflow.com/a/2985169
If you get a SQLException: Connection refused or Connection timed out or a MySQL specific CommunicationsException: Communications link failure, then it means that the DB isn't reachable at all. This can have one or more of the following causes:

IP address or hostname in JDBC URL is wrong.
Hostname in JDBC URL is not recognized by local DNS server.
Port number is missing or wrong in JDBC URL.
DB server is down.
DB server doesn't accept TCP/IP connections.
DB server has run out of connections.
Something in between Java and DB is blocking connections, e.g. a firewall or proxy.
Vis hele sitatet...
Sist endret av Bea; 6. april 2013 kl. 14:50.
Trådstarter
32 3
Da er det det som er løsningen da! Hvem driver lastet du ned og hvordan gjør du den tilgjengelig på class path?
Sist endret av WeeDLY; 6. april 2013 kl. 14:56.
Alt du trenger å vite finner du ved å lese her: http://dev.mysql.com/usingmysql/java/

Å lære seg til å finne dokumentasjon, lese og forstå den, lese feilmeldinger og google potensielle løsninger på feilmeldingene er elementært for alle som vil programmere noe. Det er bare å lære det først som sist
Sist endret av liasis; 6. april 2013 kl. 14:58.
Bea
Big Bad Wolf
Bea's Avatar
Et søk på google på "MySQL JDBC Driver" gir deg masse treff, for eksempel MySQL Connectors, siden du holder på med java last ned JDBC Driver for MySQL (Connector/J).

Bruker ikke NetBeans selv, men i Eclipse høyreklikker du på prosjektet å velger Properties -> Java Build Path -> Libraries, også Add External Jar..., også velger du .jar fila som du lastet ned (etter å ha pakket den ut av .zip fila). Tror også det skal funke å kopiere .jar fila på topp nivå i Workspacen din.
Trådstarter
32 3
Tusen takk for hjelpen!