Like-Klausel; NPE bzw. leeres ResultSet

Status
Nicht offen für weitere Antworten.

@x.l

Bekanntes Mitglied
Hallo,

ich stelle mit Hilfe eines Servlets eine Abfrage an eine Access-DB. Dabei verwende ich die LIKE - Klausel für eine Wortgruppe (Bsp: "suche den Text"), d.h. also mit Leerzeichen.
(Anm.: Die Verwendung von * anstelle von % in der Like-Klausel hatte mich auch verwundert, aber nach ein paar Tests direkt in Access zeigte sich, dass das der richtige Weg ist.)

Ich bekomme diese (scheinbar) leichte Aufgabe, aber einfach nicht gebacken, entweder bekomme ich eine NullPointerException (NPE) oder das erhaltene ResultSet ist leer.

Hier mal, dass was ich so alles ausprobiert habe:

1. Verwendung eines PreparedStatement:

Code:
pstm = connection.prepareStatement("SELECT * FROM TabName WHERE TabName.ColName LIKE '*?*';");
pstm.setString(1, identifier);
rs = pstm.executeQuery();

Der Aufruf pstm.setString() produziert eine NPE! Darauf hin habe ich mehrere Kombinationen von '*?*' probiert, sobald ich aber etwas anderes nehme (Bsp. Anführungszeichen, Kombination aus Anführungszeichen und Hochkommas, ...) funktioniert zwar (meist) die Zeile pstm.setString(), aber dafür liefert executeQuery eine SQLException (Access meldet falsche Syntax -> was ja auch stimmt)

2. Verwendung von Statement

Code:
stm = connection.createStatement();
String query = "SELECT * FROM TabName WHERE TabName.ColName LIKE '*" + identifier + "*';";
rs = stm.executeQuery(query);

Dies funktioniert zwar, jedoch ist das ResultSet leer! (Die direkte Abfrage in Access liefert jedoch mehrere Ergebnisse, d.h. die Abfrage müsste korrekt sein.)

Ich bin für jede Anregung dankbar, wie man dieses Problem lösen könnte!

Grüße
Axel
 
S

SlaterB

Gast
wenn etwas nicht funktioniert, warum um alles in der Welt dann Variablen verwenden?
test doch erst mal
String query = "SELECT * FROM TabName WHERE TabName.ColName LIKE '*anton*';";
rs = stm.executeQuery(query);
oder was immer dein Teststring ist

-------

fürs Prepared noch eine Variante (erst testen wenn auch Preperad mit festen String anton funkioniert!):
pstm = connection.prepareStatement("SELECT * FROM TabName WHERE TabName.ColName LIKE ?;");
pstm.setString(1, "*"+identifier+"*");
 

@x.l

Bekanntes Mitglied
Habe beides probiert (habe auch keine Variable verwendet), zwar habe ich keine NPE, das ResultSet blieb dennoch leer!
???:L
 

@x.l

Bekanntes Mitglied
Die Lösung war die Kombination von SlaterB und Gast:


Code:
pstm = connection.prepareStatement("SELECT * FROM TableName " +
                                   "WHERE TableName.ColName LIKE ?;");
            
pstm.setString(1, "%Zu suchende Wortgruppe%");

Danke!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Juelin Java und MySQL MariaDB - WHERE-Klausel Datenbankprogrammierung 17
J Hibernate One-To-One mit Where Klausel Datenbankprogrammierung 6
H Derby: SYSCS_UTIL.SYSCS_EXPORT_QUERY mit String Abfrage in wehre-Klausel nicht möglich Datenbankprogrammierung 3
K SQL Inner Join - On Klausel Datenbankprogrammierung 10
M Mysql Delete ohne Where Klausel untersagen Datenbankprogrammierung 8
M SQL - Dynamisch die Tabelle in From-Klausel bestimmen Datenbankprogrammierung 11
S Platzhalter in WHERE Klausel Datenbankprogrammierung 16
V "Order By"-Klausel -> Dumme Sortierung Datenbankprogrammierung 4
PaulG Leeres ResultSet initialisieren Datenbankprogrammierung 6
N Leeres Blob in ein PreparedStatement eintragen Datenbankprogrammierung 2
M Hibernate liefert mir bei many-to-one leeres Feld Datenbankprogrammierung 5
A Leeres ResultSet mit H2 unter Vista Datenbankprogrammierung 3
Y Hibernate - 1:1 Beziehung liefert leeres Objekt Datenbankprogrammierung 19
R MySQL + JDBC: Leeres datetime-Feld einlesen Datenbankprogrammierung 4
S .leeres Resultset abfangen Datenbankprogrammierung 2
S ResultSet als Parameter an andere Klasse übergeben Datenbankprogrammierung 3
Z ResultSet ist null warum? Datenbankprogrammierung 12
R HSQLDB ResultSet update aktualisiert DB, aber nicht das ResultSet Datenbankprogrammierung 2
Dimax Erstellen ResultSet und Statement Datenbankprogrammierung 30
C PostgreSQL ResultSet.TYPE_SCROLL_SENSITIVE setzen Datenbankprogrammierung 2
L MySQL Bekomme einen Fehler beim ResultSet Datenbankprogrammierung 12
L Zugriff auf ein Resultset Datenbankprogrammierung 7
L MySQL ResultSet vollständig auslesen Datenbankprogrammierung 20
D Resultset schließen ?? Datenbankprogrammierung 5
T Oracle Resultset to Array sehr langsam. Datenbankprogrammierung 8
B Probleme mit java.sql.SQLException: ResultSet closed Datenbankprogrammierung 21
J SQLite ResultSet closed -- Wiederholende DB-Abfragen Datenbankprogrammierung 6
Z MySQL Probleme mit resultSet executQuery Datenbankprogrammierung 3
L ResultSet Datenbankprogrammierung 1
J wie mit resultset.next() über Datensätze iterieren? Datenbankprogrammierung 15
R MySQL Umgang mit ResultSet/Fremdschlüssel ausgeben Datenbankprogrammierung 2
D MySQL ResultSet als Stream weiter geben Datenbankprogrammierung 9
M ResultSet Cachen Datenbankprogrammierung 3
R ResultSet mit "Untertabellen" Datenbankprogrammierung 4
N SQL-Statement Auslesen des Resultset wird immer langsamer Datenbankprogrammierung 6
R Resultset.last() Problem Datenbankprogrammierung 12
J Frage zu ResultSet Datenbankprogrammierung 3
J SQL ResultSet Previous Datenbankprogrammierung 10
S MySQL ResultSet in ein Array übertragen Datenbankprogrammierung 7
H PostgreSQL Objekte aus ResultSet Datenbankprogrammierung 5
H ResultSet is closed tritt bei JSF aber nicht bei einer Java-Applikation auf Datenbankprogrammierung 10
O Oracle Resultset greift auf Spaltenüberschriften zu Datenbankprogrammierung 2
Kenan89 Wieso klappt das ResultSet nicht? Datenbankprogrammierung 3
C ResultSet enthält nicht alle Daten Datenbankprogrammierung 4
F Derby/JavaDB Resultset in JTablemodel Datenbankprogrammierung 2
F Oracle ResultSet zu einer HashMap<Integer, String[]> Datenbankprogrammierung 6
B SQLite ResultSet is TYPE_FORWARD_ONLY Datenbankprogrammierung 5
T Exception ResultSet Datenbankprogrammierung 7
0 ResultSet in JTable Datenbankprogrammierung 14
S [SQL] ResultSet Datenbankprogrammierung 4
R ResultSet Datenbankprogrammierung 4
I Sonderbehandlung wenn ResultSet leer ist Datenbankprogrammierung 9
I Problem mit ResultSet Datenbankprogrammierung 2
I SQL_Abfrage-Ergebnis (ResultSet) in String[] speichern Datenbankprogrammierung 29
B ResultSet wirft komische NullPointerException. Datenbankprogrammierung 3
R Detached ResultSet Datenbankprogrammierung 3
F generelle Vorgehensweise ResultSet Datenbankprogrammierung 5
S ResultSet Datenbankprogrammierung 2
A MySQL ResultSet.updateBytes schlägt fehl Datenbankprogrammierung 2
F ResultSet kann Datenbank nicht update, warum? Datenbankprogrammierung 3
T ResultSet befehl für leere Spalte nicht lesen Datenbankprogrammierung 4
S ResultSet einer Datenbankabfrage - Nullpointer Exception Datenbankprogrammierung 13
A PostgreSQL anfängerfrage: resultset zeilenweise auslesen Datenbankprogrammierung 2
T MySQL ResultSet zurückgeben nachdem Connection geschlossen wurde? Datenbankprogrammierung 3
K Keine ResultSet bei if in StoredProcedure Datenbankprogrammierung 16
D ResultSet gibt nichts aus. Datenbankprogrammierung 3
trash ResultSet Syntax Fehler Datenbankprogrammierung 11
ARadauer JDBC ResultSet schließen? Datenbankprogrammierung 4
M Oracle Problem mit Resultset Datenbankprogrammierung 11
J jdbc ResultSet types Datenbankprogrammierung 5
R Frage zu PreparedStatement/ResultSet Datenbankprogrammierung 16
F ResultSet to String[] Datenbankprogrammierung 3
E ResultSet in HashMap Datenbankprogrammierung 8
K Tabelle mit resultset refreshen? Datenbankprogrammierung 4
M Problem mit ResultSet bei SQL Server 2005 Datenbankprogrammierung 6
S ResultSet in ArrayList ablegen Datenbankprogrammierung 17
G Daten aus ResultSet in String-Liste Datenbankprogrammierung 13
T ResultSet initialisieren Datenbankprogrammierung 2
C kein Resultset Datenbankprogrammierung 2
G ResultSet: String mit Anführungszeichen einlesen Datenbankprogrammierung 8
T ResultSet-Inhalt in Arrays schreiben Datenbankprogrammierung 3
S ResultSet variabel auslesen Datenbankprogrammierung 4
D Anzahl der Elemente im ResultSet ermitteln Datenbankprogrammierung 8
A Warum ist mein ResultSet leer? Datenbankprogrammierung 5
S ResultSet closed Datenbankprogrammierung 2
Z ResultSet mit einer anderen Datenquelle Datenbankprogrammierung 7
O Spaltenname aus Resultset Datenbankprogrammierung 2
thE_29 ResultSet und doppelte Spalten Datenbankprogrammierung 4
E Neues select auf ein vorhandenes Resultset Datenbankprogrammierung 11
E ResultSet vergisst Reihe? Datenbankprogrammierung 2
N resultset aus andere klasse übergeben Datenbankprogrammierung 3
F ResultSet refresh moeglich? Datenbankprogrammierung 3
S ResultSet enthält keine Daten Datenbankprogrammierung 2
B Geschlossenes ResultSet Datenbankprogrammierung 6
T ResultSet#next Ungültige Reihenfolge (DB2) Datenbankprogrammierung 5
T ResultSet schließen? Datenbankprogrammierung 6
S Tabelle updaten wenn ResultSet aus JDBC-Quelle Datenbankprogrammierung 2
S ResultSet Datenbankprogrammierung 6
F Filtern innerhalb eines Resultset Datenbankprogrammierung 12
S Connection/Statement/ResultSet auf einmal geschlossen Datenbankprogrammierung 8

Ähnliche Java Themen

Neue Themen


Oben