webForumDet fria alternativet

fel i databaskoppling

10 svar · 281 visningar · startad av Mc Fetto

Mc FettoMedlem sedan nov. 20021 920 inlägg
#1

Jag försöker få till en koppling till en mysql databas.

jag får följande felmedelande i dospromten:

SQLException: No suitable driver
SQLState: 08001
VendorError: 0
Press any key to exit

Jag har lagt till sökvägen i classpath:

set CLASSPATH=%CLASSPATH%;C:\j2sdk1.4.1\mysql-connector-java-3.0.7-stable

 import java.sql.*;

public class db
{
    private db()
    {
        try
        {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        	//Class.forName("com.mysql.jdbc.Driver").newInstance(); 

        }
        catch (Exception E)
        {
            System.err.println("Driven kunde ej hittas på server");
            System.exit(0);
        }
        connect();
    }

    private void connect()
    {
        try
        {		
           

			Connection C = DriverManager.getConnection("jdbc:mysql:/localhost:3306","root", "");
			Statement Stmt = C.createStatement();
            String sqlPhrase = "SELECT * FROM table";
            ResultSet RS = Stmt.executeQuery(sqlPhrase);
            //För delete och uppdatering: Stmt.executeUpdate(sqlPhrase);

            while(RS.next())
            {
                System.out.println(RS.getString("name"));
            }
            
            RS.close();
            Stmt.close();
            C.close();
        }
        catch (SQLException E)
        {
            System.out.println("SQLException: " + E.getMessage());
            System.out.println("SQLState:     " + E.getSQLState());
            System.out.println("VendorError:  " + E.getErrorCode());
        }    
    }

    public static void main(String[] argv) 
    {
        new db();
    }
}

Databasen ligger på min burk: localhost
User: root
port 3306

Någon som har tips, ide eller helt enkelt vet vad det är för fel får ni gärna skriva lite :)

ViktorMedlem sedan aug. 20021 710 inlägg
#2

Du laddar fel driver, du ska ladda drivern för MySQL

Class.forName("com.mysql.jdbc.Driver");

Sen var det även lite fel i din DriverManager kod också (tror jag, har inte provat)

Connection C = DriverManager.getConnection("jdbc:mysql:/localhost:3306","root", "");

ska vara

Connection C = DriverManager.getConnection("jdbc:mysql://localhost:3306","root", "");

du behöver inte ange någon port om du kör default porten på MySQL.

Lite extra :)

Om du sedan vill ansluta till en speciel database, tex test så skriver du såhär

Connection C = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root", "");

En annan sak är att när du laddat ner "mysql-connector-java-3.0.7-stable.zip" så räcker det med att lägga filen "mysql-connector-java-3.0.7-stable-bin.jar" i katalogen "C:\j2sdk1.4.1\lib\", sedan lägger du sökvägen, "C:\j2sdk1.4.1\lib\mysql-connector-java-3.0.7-stable-bin.jar" i din classpath så ska det fungera. Det är bara jar filen som du behöver.

/Viktor

Mc FettoMedlem sedan nov. 20021 920 inlägg
#3

Har gjort precis allt som du säger

men den här delen:

              try
        {
            //Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        	Class.forName("com.mysql.jdbc.Driver"); 

        }
        catch (Exception E)
        {
            System.err.println("Driven kunde ej hittas på server");
            System.exit(0);
        }
        connect();
    }

skrivs ut! altså att den inte hittades

ViktorMedlem sedan aug. 20021 710 inlägg
#4

Konstigt, jag körde denna kod,

import java.sql.*;

public class Test
{
	public static void main(String[] argv)
	{
		new db();
	}
}

class db
{
	public db()
	{
		try
		{
			//Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			Class.forName("com.mysql.jdbc.Driver"); 
		}
		catch (Exception E)
		{
			System.err.println("Driven kunde ej hittas på server");
			System.exit(0);
		}
		connect();
	}

	private void connect()
	{
		try
		{
			Connection C=DriverManager.getConnection("jdbc:mysql://192.168.0.12/gt3", "root", "");
			Statement Stmt= C.createStatement();
			String sqlPhrase= "SELECT * FROM gt3_driver";
			ResultSet RS= Stmt.executeQuery(sqlPhrase);
			while (RS.next())
			{
				System.out.println(RS.getString("name"));
			}
			RS.close();
			Stmt.close();
			C.close();
		}
		catch (SQLException E)
		{
			System.out.println("SQLException: " + E.getMessage());
			System.out.println("SQLState:     " + E.getSQLState());
			System.out.println("VendorError:  " + E.getErrorCode());
		}
	}
}

på min dator med bara "./" och sökvägen till "mysql-connector-java-3.0.7-stable-bin.jar" i classpath och det fungerar perfekt. Jag tror att det är något fel i din classpath, koden är det inget fel på.

/Viktor

Mc FettoMedlem sedan nov. 20021 920 inlägg
#5

Skulle du vilja klippa in hin Classppath ifrån dos-promt så jag kan se om jag har missat ngn detalj? Har suttit med detta problemet nu ett tag och börjar tappa håret :(

ViktorMedlem sedan aug. 20021 710 inlägg
#6
./;D:\Java\j2sdk1.4.1_01\lib\mysql-connector-java-3.0.7.jar

Det är allt :)

/Viktor

Mc FettoMedlem sedan nov. 20021 920 inlägg
#7

skit skumt, får det tusan inte att fungera, vad skriver du exakt för att få in de två sökvägarna i dos-promten + hur får man dessa att ligga kvar efter man har startat om datorn!?

ViktorMedlem sedan aug. 20021 710 inlägg
#8

Vad kör du för OS?

Windows 9X
Autoexec.bat

set CLASSPATH=./;D:\Java\j2sdk1.4.1_01\lib\mysql-connector-java-3.0.7.jar

Windows XP, 2000 och NT, välj "Enviroment Variables" och skapa en ny som du döper till CLASSPATH och där skriver du

./;D:\Java\j2sdk1.4.1_01\lib\mysql-connector-java-3.0.7.jar

/Viktor

Mc FettoMedlem sedan nov. 20021 920 inlägg
#9

konstigt, det funkar fortfarande inte, min fil heter ifs: mysql-connector-java-3.0.7-stable-bin.jar. finns ingen med det namn du skrev! kan det vara fel ver jag har eller vad kan det annars vara!?

Tack för all hjälp !

ViktorMedlem sedan aug. 20021 710 inlägg
#10

Du har rätt fil, det är bara jag som har bytt namn på den som jag har installerad :)

/Viktor

Mc FettoMedlem sedan nov. 20021 920 inlägg
#11

Var ju tvungen att starta om datorn efter jag satt CLASSPATH i environment... :r . Nu börjar det bli nomala fel igen :)
Tack för all hjälp :e

135 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
132 ms — hämta tråd, inlägg och bilagor (db)