Avatar billede taae Juniormester
14. november 2005 - 18:26 Der er 23 kommentarer og
1 løsning

JSP og mysql : classnotfound exp

jg har lagt mysql-connector-java-3.1.11-bin i C:\Programmer\Java\jre1.5.0_05\lib\ext\

jeg tjekker forb vha følgende kode:

import java.sql.*;

public class DbTest
{
    public static void main (String [] args) throws Exception
    {
        Class.forName("com.mysql.jdbc.Driver");
        Connection con = DriverManager.getConnection("jdbc:mysql:///test");
        Statement stmt = con.createStatement();
       
        stmt.executeUpdate("CREATE TABLE BilMaerker (bilMaerke varchar(15))");
        stmt.executeUpdate("INSERT INTO BilMaerker VALUES('AUDI','BMW','FORD','OPEL','SKODA','VW')");
       
        ResultSet rs;
        rs= stmt.executeQuery("SELECT * FROM BilMaerker");
       
        while (rs.next())
        {
            String navn= rs.getString("bilMaerke");
            System.out.println("bilmærke: " + navn);
        }
    }

}


og får denne fejl når jeg kører prog:

Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:164)
    at DbTest.main(DbTest.java:7)
Avatar billede arne_v Ekspert
14. november 2005 - 18:32 #1
er det den java du bruger til at køre programmet med ?
Avatar billede arne_v Ekspert
14. november 2005 - 18:33 #2
PS: generelt fraråder jeg brug af lib/ext og anbefaler brug af eksplicit classpath
Avatar billede taae Juniormester
14. november 2005 - 18:33 #3
ja
Avatar billede taae Juniormester
14. november 2005 - 18:33 #4
ok, jeg fulgte bare eks fra javabog.dk
Avatar billede arne_v Ekspert
14. november 2005 - 18:35 #5
prøv lige:

java -classpath C:\etellerandet\mysql-connector-java-3.1.11-bin.jar DbTest
Avatar billede taae Juniormester
14. november 2005 - 18:36 #6
jeg har lige lagt mysql connector i classpath og fik nu denne fejl:

Exception in thread "main" java.sql.SQLException: Access denied for user ''@'localhost' (using password: NO)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2926)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:771)
    at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3647)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1176)
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:2544)
    at com.mysql.jdbc.Connection.<init>(Connection.java:1474)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
    at java.sql.DriverManager.getConnection(DriverManager.java:525)
    at java.sql.DriverManager.getConnection(DriverManager.java:193)
    at DbTest.main(DbTest.java:8)
Avatar billede taae Juniormester
14. november 2005 - 18:42 #7
fejl: NoClassDefFoundError: and
Avatar billede arne_v Ekspert
14. november 2005 - 19:00 #8
Connection con = DriverManager.getConnection("jdbc:mysql://test", "ditbrugernavn", "ditpassword");
Avatar billede taae Juniormester
14. november 2005 - 19:00 #9
er det en god ide at lade connectoren ligge i classpath hvis man laver web appl ?

eller burde man flytte den over til webroot/WEB-INF/lib/**connector**
Avatar billede arne_v Ekspert
14. november 2005 - 19:01 #10
fejl: NoClassDefFoundError: and

lyder som en eksplicit classpath med mellemrum i og ikke "" omkring
Avatar billede arne_v Ekspert
14. november 2005 - 19:01 #11
til web app skal den ligge i WEB-INF/lib

medmindre du bruger connection pool så skal den ligge i et Tomcat dir
Avatar billede taae Juniormester
14. november 2005 - 19:05 #12
jeg tror ikke jg har nogen brugernavn, men jeg har et password jeg indtaster inden jeg bruger mysql...

arne >> jeg så lige at der var tre /// før test i min kode, som du også kan se øverst, jeg har fjernet den ene og kørt den igen, med følgende fejl.

Exception in thread "main" java.sql.SQLException: No suitable driver
    at java.sql.DriverManager.getConnection(DriverManager.java:545)
    at java.sql.DriverManager.getConnection(DriverManager.java:193)
    at DbTest.main(DbTest.java:8)
Avatar billede taae Juniormester
14. november 2005 - 19:10 #13
jeg har slettet connector fra jre mappen ...
Avatar billede arne_v Ekspert
14. november 2005 - 19:12 #14
det må vist skulle være

"jdbc:mysql://localhost/test"
Avatar billede arne_v Ekspert
14. november 2005 - 19:12 #15
har du en Class.forName ?
Avatar billede arne_v Ekspert
14. november 2005 - 19:12 #16
brugernavn kunne være root
Avatar billede taae Juniormester
14. november 2005 - 19:15 #17
Class.forName("com.mysql.jdbc.Driver");
Avatar billede taae Juniormester
14. november 2005 - 19:18 #18
Connection con = DriverManager.getConnection("jdbc:mysql:///test","root","taae");

giver fejl:

Exception in thread "main" java.sql.SQLException: Column count doesn't match value count at row 1
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2926)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1571)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1666)
    at com.mysql.jdbc.Connection.execSQL(Connection.java:2972)
    at com.mysql.jdbc.Connection.execSQL(Connection.java:2902)
    at com.mysql.jdbc.Statement.executeUpdate(Statement.java:929)
    at DbTest.main(DbTest.java:12)
Avatar billede taae Juniormester
14. november 2005 - 19:26 #19
jeg har opdaget at den går ind og opretter de tabeller jeg prøver at laver, men fylder dem ikke op med data...
Avatar billede arne_v Ekspert
14. november 2005 - 19:26 #20
stmt.executeUpdate("INSERT INTO BilMaerker VALUES('AUDI','BMW','FORD','OPEL','SKODA','VW')");

er nok forkert SQL

den brokker sig over at tabellen ikke har 6 kolonner

jeg er ret sikker på at du vil indsætte 6 rækker !
Avatar billede taae Juniormester
14. november 2005 - 19:28 #21
aha... jeg har bare fulgt eks fra javabog.dk
Avatar billede arne_v Ekspert
14. november 2005 - 20:26 #22
lav dine SQL selv som de skal være
Avatar billede taae Juniormester
15. november 2005 - 00:31 #23
lægger du et svar arne
Avatar billede taae Juniormester
12. december 2005 - 23:47 #24
.
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