Bekomme von MySql nicht alle Daten

Kai008

Erfahrenes Mitglied
Will aus langeweile ein Applet schreiben was ne Shoutbox enthält.
Soll alle 10 Sekunden aktualisieren.
Nur ich bekomme immer nur 3 Daten, obwohl schon min. 20 drinnen stehen, keine Ahnung warum. Die Methoden der SqlCntr machen das selbe wie die Methoden direkt.

Java:
public void run()
{
	String[] mySqlConData = new String[5];
	BuffRead in = null;
	try
	{
		in = new BuffRead("mysqldata.txt", this.main.getCodeBase());
	}
	catch(Throwable t)
	{
		t.printStackTrace();
	}
	
	for(int i = 0; i < 5; i++)
		mySqlConData[i] = in.readLine();
	in.close();
	
	Connection connection = SqlCntr.connect(mySqlConData[0], mySqlConData[1],
			mySqlConData[2], mySqlConData[3], mySqlConData[4]);
	Statement statement = SqlCntr.createStatement(connection);
	
	while(true)
	{
		this.textList = new ArrayList<ShoutboxText>();
		
		ResultSet resultSet = SqlCntr.executeQuery("SELECT Name, Text FROM shoutbox ORDER BY ID ASC LIMIT 10", statement);
		SqlCntr.next(resultSet);
		while(SqlCntr.next(resultSet))
		{
			String name = SqlCntr.getString(1, resultSet);
			String text = SqlCntr.getString(2, resultSet);
			this.textList.add(new ShoutboxText(name, text));
		}
		this.main.repaint();
		this.sleep(10, GregorianCalendar.SECOND);
	}		
}

Bitte sagt mir was da falsch läuft, das Sql-Statement ist richtig, hab es schon mal direkt angewand.
 
Hey!

Zuerst eine kleine Sache Vorweg: Du erzeugst in deinem Thread jede 10 sek. ein neues ArrayList Objekt, was natürlich keine gute Sache ist. Erstelle das Objekt einmalig am Anfang und nutze lieber die clear Funktion um die Liste zu leeren.

Zum Sql Teil: Ich kann leider nicht nachvollziehen, warum du nur 3 Datensätze kriegen solltest. Wenn wirklich weitere Datensätze in der Datenbank vorhanden sein sollten, sollte er diese auch rausholen. Bzw. in deinem Fall halt nur 10 Stück. Evtl. hängt es mit deiner Endausgabe zusammen.

Schonmal versucht die Datensätze nach den 10 sek. in der Console auszugeben?

Weiterhin würde ich dir raten, das ResultSet nach Ausgeben der Daten ordnungsgemäß zu schließen.

Gruß,
meni
 
Danke für die Tipps, Mitternachtscoden ist echt nicht mein Ding.
Aber es funktioniert plötzlich. :eek:
Keine Ahnung warum, denke, dass die Datenbank unter zu vielen geöffneten Results nachgegeben hat, ist teilweiße überlastet. Oder event. gibts dafür auch eine Möglichkeit in der MySql-Administration, um die Auslastung zu senken, wie wenn ein Server unter zu vielen Verbindungen steht er manchmal die Verbindung kappt. Kenn mich damit aber nicht aus.

Danke jedenfalls.
 

Neue Beiträge

Zurück