H2 - Datenbankabfrage gibt NULL aus?

Extremefall

Bekanntes Mitglied
Hallo,
ich habe neu mit H2 angefangen. Die ersten Tests funktionierten. Nun habe ich versucht, über mehrere Methoden mehr übersichtlichkeit in das ganze hereinzubringen. Leider habe ich nun einen Fehler. Bei der Ausgabe wird null ausgegeben. Mein Code:
Java:
import java.sql.*;

public class DataBase {
	private static Connection conn;

	public static void createConnection(String database, String username,
			String password) throws Exception {
		Class.forName("org.h2.Driver");
		conn = DriverManager.getConnection("jdbc:h2:~/" + database, username,
				password);
		// add application code he
	}

	public static void closeConnection() throws SQLException {
		conn.close();
	}

	public static ResultSet setStatement(String SQLCommand) throws SQLException {
		ResultSet rs = conn.createStatement().executeQuery(SQLCommand);
		return rs;
	}

	private static int getCountRows(ResultSet sqlStatement) throws SQLException {
		ResultSet rs = sqlStatement;
		int i = 0;
		while (rs.next()) {
			System.out.println("Drina");
			i++;
		}
		return i;
	}

	public static String[] dbRequest(ResultSet sqlStatement, String field)
			throws SQLException {
		ResultSet rs = sqlStatement;
		String[] dbresults = new String[getCountRows(rs)];
		int pos = 0;
		while (rs.next()) {
			System.out.println("drin");
			dbresults[pos] = rs.getString("LEHRER");
			pos++;
		}
		for (int i = 0; i < dbresults.length; i++) {
			System.out.println(dbresults[i]);
		}
		return dbresults;
	}

	public static void main(String[] args) throws Exception {
		createConnection("test", "sa", "");
		String[] dbresults = dbRequest(setStatement("SELECT * FROM TIMETABLE"),
				"LEHRER");
		for (int i = 0; i < dbresults.length; i++) {
			System.out.println(dbresults[i]);
		}
		closeConnection();
	}

}
Der Fehler scheint in der Methode dbRequest zu liegen, da diese nicht in die While Schleife geht:
Java:
while (rs.next()) {
			System.out.println("drin");
			dbresults[pos] = rs.getString("LEHRER");
			pos++;
		}

Wisst ihr, woran das liegen könnte? Denn da wird der Fehler liegen.

Danke schonmal.
 

XHelp

Top Contributor
Ohne jetzt in den etwas komischen Aufbau genauer einzusteigen: es liegt vermutlich daran, dass du ständig das selbe ResultSet hin und her schiebst und es vermals bis zum Schluss durchlaufen willst. Allerdings wenn es erstmal am Schluss angekommen ist, dann ist es eben am Schluss angekommen.
Es könnte schon helfen vor den ganzen while-Schleifen
Code:
rs.beforeFirst()
aufzurufen, oder aber den Aufbau ändern
 

Extremefall

Bekanntes Mitglied
Ich erhalte bei deinem Vorschlag diesen Fehler:
Code:
Drina
Exception in thread "main" org.h2.jdbc.JdbcSQLException: Kann nicht an den Anfang der Resultat-Zeilen springen. Mögliche Lösung: conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ..).
The result set is not scrollable and can not be reset. You may need to use conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ..). [90128-155]
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:327)
	at org.h2.message.DbException.get(DbException.java:167)
	at org.h2.message.DbException.get(DbException.java:144)
	at org.h2.message.DbException.get(DbException.java:133)
	at org.h2.jdbc.JdbcResultSet.resetResult(JdbcResultSet.java:2995)
	at org.h2.jdbc.JdbcResultSet.beforeFirst(JdbcResultSet.java:2517)
	at DataBase.dbRequest(DataBase.java:38)
	at DataBase.main(DataBase.java:52)

Ich habe auch folgenden Code in der dbRequest Methode probiert:
Java:
ResultSet rs2 = rs;

Liegt es dann wohl an dem SQL Statement?
 

XHelp

Top Contributor
Die Idee mag vlt verrückt klingen: aber warum nicht die Lösung versuchen, die vorgeschlagen wird?
Warum es zu der Fehlermeldung kommt steht in der API:
A default ResultSet object is not updatable and has a cursor that moves forward only.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Datenbankabfrage mit loop Datenbankprogrammierung 17
N MySQL Datenbankabfrage oder Arraylist? Datenbankprogrammierung 2
J Datenbankabfrage / Teilmengen Datenbankprogrammierung 2
S MySQL JTable zeigt nach Datenbankabfrage eine Spalte zu viel an Datenbankprogrammierung 0
S MySQL Datenbankabfrage mit Eingabe aus Textfeld vergleichen Datenbankprogrammierung 4
C Modellierung Datenbankabfrage Datenbankprogrammierung 1
W SQL-Statement Datenbankabfrage über Yahoo Datenbankprogrammierung 0
B Fehlerhafte Datenbankabfrage Datenbankprogrammierung 3
H Oracle Datenbankabfrage ausgeben Datenbankprogrammierung 13
E MySQL Anzeige Datenbankabfrage in Textfeld o.ä. Datenbankprogrammierung 34
L Datenbankabfrage mit einer Range Datenbankprogrammierung 3
Y JDBC - Datenbankabfrage Webserver Datenbankprogrammierung 4
H Einfache Datenbankabfrage Datenbankprogrammierung 14
S ResultSet einer Datenbankabfrage - Nullpointer Exception Datenbankprogrammierung 13
F Problem mit Datenbankabfrage Datenbankprogrammierung 7
M Problem bei einfacher Datenbankabfrage Datenbankprogrammierung 7
W Problem mit Datenbankabfrage Datenbankprogrammierung 3
S Datenbankabfrage mit Applet Datenbankprogrammierung 13
A Datenbankabfrage mit KeyListener Datenbankprogrammierung 5
C Rückgabetyp einer Datenbankabfrage Datenbankprogrammierung 12
V Datenbankabfrage in einem Textfeld ausgeben Datenbankprogrammierung 3
L einfache Datenbankabfrage ohne erstes Element Datenbankprogrammierung 2
E Nochmal eine Datenbankabfrage Frage :-o (JOIN oder so) Datenbankprogrammierung 4
R NUllPointerException bei Datenbankabfrage Datenbankprogrammierung 4
A SQL Datenbankabfrage in Array speichern Datenbankprogrammierung 3
P Datenbankabfrage MYSQL aus Applet heraus Datenbankprogrammierung 6
D Datenbankabfrage will nicht funktionieren Datenbankprogrammierung 5
C vergleichende Datenbankabfrage Datenbankprogrammierung 5
G datenbankabfrage Datenbankprogrammierung 4
A datenbankabfrage in sql mit java Datenbankprogrammierung 32
T Nochmal Datenbankabfrage Datenbankprogrammierung 6
P Herausfinden wann Query null zurück gibt? Datenbankprogrammierung 1
Thallius MySQL Warum gibt result verschiedene Datumsformate? Datenbankprogrammierung 1
flenst111 SQL-Statement Wie konfiguriert man JDBC-Connect.richtig, damit es bei riesigen Tabs keinen Speicherüberlauf gibt? Datenbankprogrammierung 1
Crashbreaker MySQL MySQL - Hibernate gibt Fehler aus Datenbankprogrammierung 25
H Klasse welche Mysql Daten zurück gibt Datenbankprogrammierung 18
D ResultSet gibt nichts aus. Datenbankprogrammierung 3
B MySql DELETE Anweisung gibt Fehler zurück Datenbankprogrammierung 7
J Anzeige Button gibt immer nur 1. Datensatz aus DB aus Datenbankprogrammierung 8
F MySQL gibt nur null zurück Datenbankprogrammierung 3
E gibt es was schnelleres als Like Datenbankprogrammierung 5
Maxim6394 EclipseLink + SQLite | Unable to acquire a connection from driver [null] Datenbankprogrammierung 6
ma095 value NULL- Datenbank Postgresql Spring - intellij community Datenbankprogrammierung 0
N DBUnit und null Datenbankprogrammierung 6
P Null Werte bei der Normalisierung Datenbankprogrammierung 2
Z ResultSet ist null warum? Datenbankprogrammierung 12
krgewb getDouble auch mit null möglich? Datenbankprogrammierung 2
D SQL Server Android App: 'int java.lang.String.length()' on a null object reference Datenbankprogrammierung 15
zhermann Data truncation: Incorrect date value: 'null' for column Datenbankprogrammierung 31
I Datenbankverbindung Oracle DB klappt nicht - getConnection returned null Datenbankprogrammierung 8
M Derby/JavaDB einen Null-Wert in die Datenbank schreiben Datenbankprogrammierung 7
D Oracle NullPointerException bei select mit Null Values Datenbankprogrammierung 5
T IllegalArgumentException: Person[ id=null ] is not a known entity type.??? Datenbankprogrammierung 0
C PostgreSQL JDBC + PostgreSQL: getLong liefert 0 statt NULL Datenbankprogrammierung 2
R JPA dynamisch auf NULL abfragen Datenbankprogrammierung 2
OnDemand LEFT JOIN id hat Null Datenbankprogrammierung 6
P executeQuery liefert null zurück Datenbankprogrammierung 5
P Datenbank- Abfrage mit null'en Datenbankprogrammierung 2
C PreparedStatement und null Datenbankprogrammierung 13
M HSQLDB EntityManager null? Datenbankprogrammierung 7
O MySQL PreparedStatements: int null Datenbankprogrammierung 7
S Null Pointer exception statement Datenbankprogrammierung 8
M JPA NOT NULL Datenbankprogrammierung 11
Q java.lang.NullPointerException connection = null Datenbankprogrammierung 13
C Metadata der SessionFactory immer null Datenbankprogrammierung 2
N Connection bleibt null Datenbankprogrammierung 7
F Derby/JavaDB Exception - Cannot accept Null Value (help) Datenbankprogrammierung 10
G MySQL Timestamp null Datenbankprogrammierung 2
H Fehler bei null-Datum in MySQL-DB Datenbankprogrammierung 2
G getConnection() liefert null Datenbankprogrammierung 3
A MSSQL - Spalten mit der Option: NULL zulassen Datenbankprogrammierung 2
G Hibernate oneToMany Not null Datenbankprogrammierung 4
S Update mit null Datenbankprogrammierung 11
H Date null = 30.11.0002? Datenbankprogrammierung 6
P Fehler: result-set zeigt auf null, aber warum Datenbankprogrammierung 4
R Warum ist meine Connection null? Datenbankprogrammierung 6
P Wie übergebe ich einen NULL Wert in meinem Java-Programm? Datenbankprogrammierung 7
W RsultSet auf null abfragen funktioniert nicht Datenbankprogrammierung 4
D hibernate + null + primitive Datentypen Datenbankprogrammierung 2
G NULL-data processing. Datenbankprogrammierung 11

Ähnliche Java Themen


Oben