CachedRowSet Verbindungsproblem..

Status
Nicht offen für weitere Antworten.

Johnny00

Mitglied
hallo liebes forum,

ich habe eine klasse:
Java:
import javax.sql.rowset.*;
import com.sun.rowset.CachedRowSetImpl;


/**
 *
 * @author Johnny
 */
public class DataBaseConnector {
    private CachedRowSet db;
    
    public DataBaseConnector () {
        try {
            Class.forName ("com.mysql.jdbc.Driver");
            db = new CachedRowSetImpl();
            db.setDataSourceName("jdbc:mysql://loalhost/mydatabase");
            db.setUsername("root");
            db.setPassword("password");
        } catch (Exception e) {
            System.err.println(e);
        }
    }
    
    public CachedRowSet getCachedRowSetFromQuery(String query) {
        try {
        db.setCommand( query ); 
        db.execute();
            return db;
        }
        catch (Exception e) {
            System.err.println(e);
            return null;
        }
    }
}

Ich will eigentlich ein Objekt CachedRowSet serialisieren und durch einen Stream schicken. Ich bekomme aber immer die Fehlermeldung:

java.sql.SQLException: (JNDI) Verbindung nicht möglich

... wenn ich ein Objekt erstelle, es über den stream schicke und mittels
rowset.next() .. durchgehen will kommt eine nullpointer exception.. das ist klar weil die databaseconnector klasse null liefert, da keine verbindung besteht.

Ich habe es nach vielen Anleitungen gemacht, aber... irgendwas mach ich falsch.
name, passwort, datenbank sind richtig.
wie man sieht nutz ich mysql als datenbank.

hat jemand ne ahnung was ich falsch mache? hab ich irgendwas vergessen?

liebe grüße
johnny
 

tfa

Top Contributor
Du hast die DB-URL falsch geschrieben.
"localhost" funktionirt manchmal auch nicht richtig. Verwende dann "127.0.0.1".
 

Johnny00

Mitglied
nein tfa, leider klappt das auch nicht :(

hier sind mal meine anderen beiden klassen:
Java:
package RowSet;

import java.io.*;
import java.net.*;
import javax.sql.rowset.CachedRowSet;

public class RowSetClient
{
	public static void main(String[] args)
	{
		try
		{
			Socket s = new Socket("127.0.0.1", 9999);

			ObjectInputStream r = new ObjectInputStream (s.getInputStream());
			PrintWriter    w = new PrintWriter(s.getOutputStream(), true);

			CachedRowSet cache = null;

            w.println ("SELECT * FROM mytable");
            cache = (CachedRowSet) r.readObject();

            while (cache.next())
                System.out.println("....");
            
            System.out.println ("Verbindung beendet.");

		}
		catch (Exception err)
		{
			System.err.println(err);
		}
	}
}

und

Java:
package RowSet;

import java.io.*;
import java.net.*;
import javax.sql.rowset.CachedRowSet;

/**
 *
 * @author Johnny
 */
public class RowSetServer {
    private ServerSocket server;
    private DataBaseConnector database;

	public RowSetServer (int portnum)
	{
		try
		{
			server   = new ServerSocket(portnum);
            database = new DataBaseConnector();
		}
		catch (Exception err)
		{
			System.out.println(err);
		}
	}

	public void serve()
	{
		try
		{
                System.out.println ("Warte auf Verbindung...");
				Socket client = server.accept();
                System.out.println ("Client hat sich angemeldet");

				BufferedReader r = new BufferedReader(new InputStreamReader(client.getInputStream()));
                ObjectOutputStream out = new ObjectOutputStream(client.getOutputStream());

				String qry;
                qry = r.readLine ();
                System.out.println (qry);

                CachedRowSet cache = database.getCachedRowSetFromQuery(qry);
                out.writeObject( (CachedRowSet) cache);
				client.close();
		}
		catch (Exception err)
		{
			System.err.println(err);
		}
	}

	public static void main(String[] args)
	{
		RowSetServer s = new RowSetServer (9999);
		s.serve();
	}
}

ich denke an den beiden klassen ist kein fehler....

ich hab die eine zeile nun umgeändert:

Java:
            db.setDataSourceName("jdbc:mysql://127.0.0.1/database");

leider kommen immernoch die gleichen fehler..
wenn ich das mit normalen resultsets mache dann funktioniert die verbindung einwandfrei...

hab ich irgendwas übersehen?? ich verzweifel seit 2 3 tagn schon dran..

i
 

Johnny00

Mitglied
schon okay habs hinbekommen

ich hab vergessen setURL() auszuführen und obendrein hab ich die parameter der beiden funktionen (setDataSourceName()) vertauscht. nun klappt alles!

danke trotzdem für diene hilfe!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen

Ähnliche Java Themen


Oben