Avatar billede stig69 Nybegynder
08. oktober 2001 - 10:15 Der er 13 kommentarer og
1 løsning

Mysql adgang

Jeg har følgende lille program, der meget gerne skulle skabe en database adgang:

import java.io.*;
import java.sql.*;

public class DatabaseInput {

//Opkald til Database
    public static void main (String[] args) throws SQLException {
        Connection db;
        Statement st;

        String url = \"jdbc:mm.mysql://XXXX/\";
        String usr = \"XXXX\";
        String pwd = \"XXXX\";
       
        try { Class.forName(\"mysql.Driver\"); }
        catch (ClassNotFoundException e){
            System.out.println(\"Kan ikke finde driver\");
        }
           
        db = DriverManager.getConnection(url, usr, pwd);
        st = db.createStatement();
       
       
       
        String query = \"SELECT XXX FROM XXX WHERE XXX = \'XXX\'\";
        st.execute(query);
        ResultSet rs = st.getResultSet();
        while (rs.next()) {
            String XXX = rs.getString(\"XXX\");
            String fornavn = rs.getString(\"XXX\");
            System.out.println(XXX + \" \" + XXX + \" \");
        }
       
        st.close();
        db.close();
    }
}
Jeg kan dog ikke få adgang til databasen. Jeg modtager en exception: Kan ikke finde driver.
Jeg har lagt en mm.mysql-2.0.6.1.jar driver i biblioteket: C:\\...\\jdk1.1.3\\jre\\lib\\ext\\

Er der andet jeg mangler? Eller er det bare forkert?
Avatar billede disky Nybegynder
08. oktober 2001 - 10:16 #1
prøv at få classpath til at pege specifikt på den .jar fil.
Avatar billede disky Nybegynder
08. oktober 2001 - 10:17 #2
p.s.

den version af JDK du bruger er MEGET gammel. Hent version 1.3.1 eller 1.4
Avatar billede disky Nybegynder
08. oktober 2001 - 10:29 #3
ja jeg har min i c:\\jdk1.3.1\\lib og den specifikt valgt i CLASSPATH og det VIRKER !!
Avatar billede stig69 Nybegynder
08. oktober 2001 - 10:29 #4
Det er en skrivefejl fra min side. Jeg benytter jdk1.3 dvs. biblioteket hedder C:\\...\\jdk1.3\\...

Det skulle ikke være nødvendigt i JDK 1.3 at sætte Classpath.

Det er mere driveren der driller mig. Jeg må kalde den med noget forkert. Hvad plejer man at skrive der?
Avatar billede stig69 Nybegynder
08. oktober 2001 - 10:31 #5
Jeg har også prøvet at smide den i C:\\jdk1.3\\lib - det hjalp ikke
Avatar billede disky Nybegynder
08. oktober 2001 - 10:40 #6
Prøv nu bare at få din System Classpath til specifikit at pege på den .jar fil.
Avatar billede disky Nybegynder
08. oktober 2001 - 10:43 #7
du kan selvfølgelig også fortælle classpath ved opstart af dit program.

f.eks.

java -cp c:\\jdk1.3\\lib\\mm.mysql-2.0.6.1.jar DatabaseInput
Avatar billede stig69 Nybegynder
08. oktober 2001 - 10:45 #8
Det kan jeg ikke da jeg ikke har rettigheder. Sådan er det på uddannelsessteder. It sucks 2 the maxx....

Hvad plejer du at skrive her:
Class.forName(\"mysql.Driver\");
Avatar billede disky Nybegynder
08. oktober 2001 - 10:48 #9
Her er hele min klasse:
public class DbHandler extends Object
{
   
    private Connection con=null;

    /** Creates new DataBase */
    public DbHandler()
    {
    }

    public boolean open(String dbDriverName, String dbClassName, String user, String pass)
    {           
        try
        {
            if(con==null)
            {
                Class.forName(dbDriverName).newInstance();
                con = DriverManager.getConnection(dbClassName, user, pass);
            }
        }
        catch (SQLException e)
        {
            e.printStackTrace(System.out);
            return false;
        }
        catch (ClassNotFoundException e)
        {
            e.printStackTrace(System.out);
            return false;
        }
        catch (InstantiationException e)
        {
            e.printStackTrace(System.out);
            return false;
        }
        catch (IllegalAccessException e)
        {
            e.printStackTrace(System.out);
            return false;
        }
        return true;
    }
   
    public void close()
    {
        if(con!=null)
        {
            try
            {
                con.close();
                con=null;
            }
            catch (SQLException e)
            {
                e.printStackTrace(System.out);
            }
        }
    }
   
    public int doUpdate(String sql)
    {
        if(con!=null)
        {
            try
            {
                long time=System.currentTimeMillis();
                Statement stat=con.createStatement();
                System.out.println(\"SQL Update = \"+(System.currentTimeMillis()-time)+\" ms  \"+sql);
                return stat.executeUpdate(sql);       
            }
            catch (SQLException e)
            {
                e.printStackTrace(System.out);
            }
        }
        return 0;
    }

    public ResultSet doQuery(String sql)
    {
        if(con!=null)
        {
            try
            {
                long time=System.currentTimeMillis();
                Statement stat=con.createStatement();
                System.out.println(\"SQL Update = \"+(System.currentTimeMillis()-time)+\" ms  \"+sql);
                return stat.executeQuery(sql);       
            }
            catch (SQLException e)
            {
                e.printStackTrace(System.out);
            }
        }
        return null;
    }
}
Avatar billede disky Nybegynder
08. oktober 2001 - 10:50 #10
Og jeg kalder Open på følgende måde:
open(\"org.gjt.mm.mysql.Driver\",\"jdbc:mysql://localhost/DatabaseNavn\",\"username\",\"password\");

DatabaseNavn, Username, Password skal du sætte op

Avatar billede stig69 Nybegynder
08. oktober 2001 - 10:51 #11
Jeg prøver lige, så vender jeg tilbage
Avatar billede disky Nybegynder
09. oktober 2001 - 15:40 #12
jeg takker
Avatar billede stig69 Nybegynder
09. oktober 2001 - 15:41 #13
fik du nogle point? Jeg er lidt i tvivl om jeg ramte rigtigt med musen.

Anyway. JEg behøvede ikke at fortælle classparth. Jeg tror jeg havde hentede en forkert driver til mysql.

Men jeg er glad det virker! Så tak for hjælpen
Avatar billede disky Nybegynder
09. oktober 2001 - 15:42 #14
udemærket. yep jeg fik point :)
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