SQL Exception Problem

lackschuh

Mitglied
Hallo

Ich habe einen neuen Rechner mit Eclipse 3.5 und MYSQL 5.1. Mein Schulprojekt habe ich auf einem alten Rechner mit Eclipse 3.0 und MYSQL 4.1 angefangen. Nun habe ich das Projekt in Eclipse 3.5 importiert und die Klasse für die Datenbankanbindung angepasst. Ich kann auch zugreifen, aber ich habe nun folgendes Problem und komme seit mehreren Tagen nicht mehr weiter.

Wenn ich das Projekt starte, dann kommt in der Konsole folgende Meldung:

java.sql.SQLException: Before start of result set
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1072)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:986)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:981)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:841)
at com.mysql.jdbc.ResultSetImpl.getStringInternal(ResultSetImpl.java:5656)
at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5576)
at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5616)
at model.DBManager.readLastkunde(DBManager.java:198)
at control.MasterKontroller.<init>(MasterKontroller.java:21)
at control.StartKontroller.start(StartKontroller.java:26)
at control.StartKontroller.main(StartKontroller.java:14)

Code für readLastkunde in der DBManager Klasse:
Java:
public Kunden readLastkunde() {
		Connection verbindung = null;
		try
		{
			verbindung = DBStarter.getConnection();
		} catch (InstantiationException e1)
		{
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		try
		{
			verbindung = DBStarter.getConnection();
		} catch (InstantiationException e1)
		{
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		Statement anweisung;
		ResultSet ergebnis;
		Kunden curKunde = null;
		try {
			anweisung = (Statement) verbindung.createStatement();
			ergebnis = (ResultSet) anweisung
					.executeQuery("Select * from kunde order by createtime desc limit 1");
			curKunde = new Kunden();

			curKunde.setTitel(ergebnis.getString("titel"));
			curKunde.setName(ergebnis.getString("name"));
			curKunde.setVorName(ergebnis.getString("vorname"));
			curKunde.setStrassenNr(ergebnis.getString("strassennr"));
			curKunde.setPlz(ergebnis.getString("plz"));
			curKunde.setOrt(ergebnis.getString("ort"));
			curKunde.setTel(ergebnis.getString("tel"));
			curKunde.setHandy(ergebnis.getString("handy"));
			String geschl = ergebnis.getString("geschlecht");
			if (geschl != null)
				if (geschl.equals("1"))
					curKunde.setGeschlecht(true);
				else
					curKunde.setGeschlecht(false);

			SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy");
			String geb = ergebnis.getString("geburtsdatum");
			if (geb != null)
				curKunde.setGeburtsdatum(format.parse(geb));

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ParseException p) {
			// TODO Auto-generated catch block
			p.printStackTrace();
		}
		return curKunde;
	}


Code DBStarter:
Java:
public class DBStarter
{
    
    private static Connection curConnection = null;    

    public static  Connection getConnection() throws InstantiationException
    {
        if (curConnection == null)
        {
            
            try
            {
            	Class.forName("com.mysql.jdbc.Driver");
        		
        		// Connection herstellen
        		String tTreiber ="jdbc:mysql:";
        		String tServer  ="localhost";
        		String tPort    ="3306";
        		String tSchema  ="schulprojekt";
        		String tUser    ="root";
        		String tPasswort ="";
        		
        		String tConnectionString = tTreiber + "//" + tServer + ":" + tPort + "/" + tSchema;
            	
            	
                curConnection = DriverManager.getConnection(tConnectionString, tUser, tPasswort);
            
            } 
            
            catch (ClassNotFoundException e)
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } 
            catch (SQLException e)
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
        }
        return curConnection;
    }
  
}

Wenn ich aber den Kundenerfassungsdialog von JInternalFrame in ein JFrame ändere und ihn seperat über einen Starter aufrufe, dann kann ich zwar alle Kunden lesen, jedoch erscheint in der Konsole folgende Fehlermeldung:

java.sql.SQLException: Before start of result set
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1072)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:986)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:981)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:841)
at com.mysql.jdbc.ResultSetImpl.getStringInternal(ResultSetImpl.java:5656)
at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5576)
at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5616)
at model.DBManager.readLastkunde(DBManager.java:198)
at test.StartDialogKunde.main(StartDialogKunde.java:26

Für Hilfe wäre ich sehr dankbar.
MFG
 

lackschuh

Mitglied
Ok, vielen Dank.

1. Dann hat es also mit der Klasse DBStarter nichts zu tun?
2. Das mit dem next() aufrufen kapiere ich noch nicht so ganz. Hast du eventuell gerade einen Link zur Hand, wo dieses Thema für Anfänger verständlich erläutert wird?

mfg
 

lackschuh

Mitglied
Hallo
irgendwie habe ich das mit dem next() noch nicht so raus. Wo liegt hier der Fehler. Also wenn ich den Inhalt einer DB-Tabelle lese bzw. alle Zeilen gelesen wurde und es wieder von vorne beginnt, dann erhalte ich wieder den gleichen Fehler:
java.sql.SQLException: Before start of result set
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1072)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:986)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:981)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:841)
at com.mysql.jdbc.ResultSetImpl.getStringInternal(ResultSetImpl.java:5656)
at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5576)
at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5616)
at model.DBManager.readObject(DBManager.java:238)
at GUI.PkwDialogSicht$1.actionPerformed(PkwDialogSicht.java:248)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6263)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6028)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

[JAVA=215] public Object readObject(Pkws curPkw) {
ResultSet ergebnis;

try {
ergebnis = SingletonErgebnis.get("pkw");
curPkw = new Pkws();

if (ergebnis.next());
else
{
SingletonErgebnis.set();
ergebnis = SingletonErgebnis.get("pkw");
}

Class objectClass = curPkw.getClass();
java.lang.reflect.Method[] methoden = objectClass.getMethods();
String spaltenNamen = "";
String attribute = "";

for (int i = 0; i < methoden.length; i++) {
if (methoden.getName().contains("set")) {
String name = methoden.getName();
if (!name.equals("setClass")) {
Object[] array = new Object[1];
//Hier unten wird der Fehler angezeigt, wenn der Durchlauf beendet ist und es von neuem beginnt.
array[0] = ergebnis.getString(name.substring(3));
System.out.println("Führe Methode aus auf : "
+ methoden.toString());
System.out.println("Mit Parameter : "
+ array[0].toString());

if (methoden.toString().indexOf("etriebe") > 0)
if (((String) array[0]).compareTo("0") > 0)
array[0] = new Boolean(false);
else
array[0] = new Boolean(true);

if (methoden.toString().indexOf("mStand") > 0)
array[0] = new Integer((String) array[0]);

if (methoden.toString().indexOf("prit") > 0)
array[0] = new Integer((String) array[0]);

if (methoden.toString().indexOf("reis") > 0)
array[0] = new Integer((String) array[0]);

if (methoden.toString().indexOf("aufDatum") > 0)
{
DateFormat df2 = DateFormat.getDateInstance(DateFormat.DEFAULT, Locale.GERMANY);
try {
array[0] = df2.parse((String) array[0]);
} catch (ParseException e) {
e.printStackTrace();
}}


if (methoden.toString().indexOf("rstZulassung") > 0)

{
DateFormat df = DateFormat.getDateInstance(
DateFormat.DEFAULT, Locale.GERMANY);
try {
array[0] = df.parse((String) array[0]);
} catch (ParseException e) {
e.printStackTrace();
}
}
try {
methoden.invoke(curPkw, array);
System.out.println("############ Methode " + methoden.getName());

} catch (IllegalArgumentException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IllegalAccessException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (InvocationTargetException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return curPkw;
}[/code]
 
S

SlaterB

Gast
wird das else in Zeile 23 aktiv (loggen, debuggen)?
anscheinend kommt von Zeile 226 ein neues ResultSet und bis Zeile 239 sehe ich nirgendwo einen next()-Aufruf,
ist ja nicht so schwer, einfach z.B. in Zeile 227 ergebnis.next(), wie du es schon in Zeile 222 hast,

ob und warum da vielleicht noch ein if/ else dazugehört, was du in allen Fällen machen solltest, könntest, dürftest,
will ich dabei gar nicht mal interpretieren,

nur nach wie vor auf eine extrem einfache Regel hinweisen: bevor nicht next() aufgerufen wird kein getString(),
müsste zu merken sein, oder?
 

lackschuh

Mitglied
wird das else in Zeile 23 aktiv (loggen, debuggen)?
anscheinend kommt von Zeile 226 ein neues ResultSet und bis Zeile 239 sehe ich nirgendwo einen next()-Aufruf,
ist ja nicht so schwer, einfach z.B. in Zeile 227 ergebnis.next(), wie du es schon in Zeile 222 hast,

Super, danke, ihr seid die Besten. Nachdem ich in Zeile 227 ein next() hinzu gefügt habe, läuft es wunderbar durch.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G MySQL Java Problem: Nullpointer Exception obwohl Daten vorhanden sind? Datenbankprogrammierung 2
megachucky Problem mit: SQL Exception Before start of result set Datenbankprogrammierung 2
M Problem mit dem ActionListener und SQL Exception Datenbankprogrammierung 6
EagleEye problem mit exception Datenbankprogrammierung 2
KOKASS Exception bei Datenbankconnect Datenbankprogrammierung 9
Kirby.exe SQL-Exception: Column not found Datenbankprogrammierung 6
S MySQL hibernate exception: illegal state exception : entityManagerFactory is closed Datenbankprogrammierung 5
G PostgreSQL Nach Monaten auf einmal ClassNotFound-Exception Datenbankprogrammierung 3
K JPA Projekt Exception Datenbankprogrammierung 7
C jpa, exception Predeployment of PersistenceUnit failed Datenbankprogrammierung 1
M CommunicationLinkError - NullPointer Exception Datenbankprogrammierung 11
T MongoDB: Morphia REST 505 Exception Tomcat Datenbankprogrammierung 2
M SQL-Exception trotz funktionierendem SELECT Datenbankprogrammierung 4
N JDBC: rollback() bei Exception geht nicht!? Datenbankprogrammierung 1
M SQL Exception Datenbankprogrammierung 6
L Probleme mit DriverManager.getConnection(..) - Endlosschleife, Java Absturz, Keine Exception Datenbankprogrammierung 4
D Hibernate SaveOrUpdate Exception Datenbankprogrammierung 2
E MySQL Hibernate mit JaxWS führt zu LazyInitialization Exception Datenbankprogrammierung 8
E PostgreSQL Exception too ...many clients already bei DB-Abfrage Datenbankprogrammierung 14
T java sql exception getDate() Datenbankprogrammierung 2
O Viele Verbindungen-Exception bei insert Daten zur MySQL-Datenbank Datenbankprogrammierung 2
E Sql Exception Datenbankprogrammierung 14
M NestedTransaction- Exception in Hibernate Datenbankprogrammierung 15
F Derby/JavaDB SQL-Exception...Aber wieso!? :/ Datenbankprogrammierung 2
T Exception ResultSet Datenbankprogrammierung 7
Paristick MSSQL - JDBC Exception beim Registrieren Datenbankprogrammierung 5
S Null Pointer exception statement Datenbankprogrammierung 8
G JDBC Exception Datenbankprogrammierung 3
S ResultSet einer Datenbankabfrage - Nullpointer Exception Datenbankprogrammierung 13
F Derby/JavaDB Exception - Cannot accept Null Value (help) Datenbankprogrammierung 10
G Stored Procedure Exception Handling Datenbankprogrammierung 3
C SQL Exception auf Unique überprüfen Datenbankprogrammierung 5
B Hibernate+JPA Exception in persistence.xml Datenbankprogrammierung 5
M hilfe zur einer Exception Datenbankprogrammierung 2
J Nullpointer Exception bei Zugriff auf Datenbank Datenbankprogrammierung 13
A MySQL Anbindung - Exception Handling Datenbankprogrammierung 2
R SQL Exception: Cursor position not valid Datenbankprogrammierung 7
O Oracle 11g wirft bei 90 % der installation eine Exception ? Datenbankprogrammierung 5
R Warum kommt eine Exception bei instanceof ? Datenbankprogrammierung 4
B SQL Exception Datenbankprogrammierung 9
E Datenbankverbindung Java MySQL Exception Datenbankprogrammierung 10
N Class not found Exception Datenbankprogrammierung 2
A Exception in thread "AWT-EventQueue-0" java.lang.N Datenbankprogrammierung 4
M SQL Exception bei LIMIT Datenbankprogrammierung 11
W updateRow() schmeißt eine Exception, weil schreibgeschützt Datenbankprogrammierung 6
M Sql Anfrage wirft Exception Datenbankprogrammierung 5
6 Communications link failure due to underlying exception Datenbankprogrammierung 10
R SQL Exception "Weiterleiten der Egebnissmenge" Datenbankprogrammierung 15
märliprinz Exception in thread "main" java.lang.OutOfMemoryEr Datenbankprogrammierung 9
S Java SQL-Exception bei Zugriff auf MSAccess Datenbankprogrammierung 2
K Exception bei Verbindungsaufbau Oracle Datenbank Datenbankprogrammierung 13
L "desc tablename" liefert SQL Exception mit execute Datenbankprogrammierung 6
M SQL Exception Datenbankprogrammierung 3
D Exception bei ResultSet.moveToInsertRow Datenbankprogrammierung 6
L UPDATE löst Exception aus Datenbankprogrammierung 6
V Exception beim Speichern von eingegebenen Daten in Tabelle Datenbankprogrammierung 2
G ich bekomm immer die exception grrrr Datenbankprogrammierung 3
D Unklare SQL Exception Datenbankprogrammierung 3
N Problem mit dem Datenbankzugriff über ucanaccess Datenbankprogrammierung 15
J PC-Start Problem JDBC Connection Datenbankprogrammierung 10
C Problem mit Apache Poi Datenbankprogrammierung 6
N HSQLDB Problem mit Eclipselink in runnable Jar Datenbankprogrammierung 10
P GroupLayout-Problem Datenbankprogrammierung 12
F XAMPP max connections problem Datenbankprogrammierung 6
C MySQL Problem in phpMyAdmin Oberfläche Datenbankprogrammierung 5
C Problem with INSERT.............ON DUPLICATE KEY Datenbankprogrammierung 3
C Problem with insertion in database. Datenbankprogrammierung 7
F Problem mit Hibernate c3p0 Datenbankprogrammierung 2
W Problem mit Insert in zwei Tabellen Datenbankprogrammierung 8
G MySQL Problem mit MySQL verbindung Datenbankprogrammierung 8
A kleines Problem Datenbankprogrammierung 6
T Problem mit Datenbankverbindung Datenbankprogrammierung 22
V Derby/JavaDB updateRow Problem Datenbankprogrammierung 0
Nuiton EmbeddedDriver Problem Datenbankprogrammierung 6
A MongoDB Passwort Problem Datenbankprogrammierung 0
O HSQLDB Hibernate Criteria Problem Datenbankprogrammierung 3
F MySQL JDBC Problem Datenbankprogrammierung 5
Anfänger2011 Datenbankstruktur/aufbau (theoretisches Problem) Datenbankprogrammierung 5
M Derby/JavaDB Drop Database problem Datenbankprogrammierung 3
M Derby/JavaDB NOT LIKE problem Datenbankprogrammierung 19
N HSQLDB Problem mit EntityManager Datenbankprogrammierung 7
B MySQL JPAContainer Problem Datenbankprogrammierung 4
K Eclipse Apache Derby Treiber Problem Datenbankprogrammierung 4
C Problem oder Denkfehler mit H2-Database Datenbankprogrammierung 3
E Wie kann man das Problem mit der BLOB-Spalte lösen? Datenbankprogrammierung 1
M Problem mit jcouchdb und CouchDB - UTF8 kein gültiger Zeichentyp Datenbankprogrammierung 4
T MySQL Problem mit Datenbankanbindung Datenbankprogrammierung 4
M INSERT-Problem = integrity constraint violation: foreign key no parent Datenbankprogrammierung 5
P SQL Query Problem Datenbankprogrammierung 14
A MySQL Problem bei Tabelle ausgeben Datenbankprogrammierung 3
Q MySQL JDBC-Treiber Problem Datenbankprogrammierung 2
B SQLite Problem bei Planung der Datenbank [Jeopardy] Datenbankprogrammierung 3
A Problem mit dem Import und Export von Bildern Datenbankprogrammierung 4
P Oracle Problem mit Umlauten Datenbankprogrammierung 9
A Problem mit Create-Statement Datenbankprogrammierung 9
D Problem mit COLUMN_IDENTIFIERS Datenbankprogrammierung 8
Bluedaishi MySQL Abfrage Problem :-) Datenbankprogrammierung 21
M Problem mit mehreren Datasourcen Datenbankprogrammierung 3
R Resultset.last() Problem Datenbankprogrammierung 12
M Problem GroupBy Datenbankprogrammierung 3

Ähnliche Java Themen


Oben