Abfragen auf Vorhanden

Status
Nicht offen für weitere Antworten.

Sensewell

Mitglied
Hallo Leute,

ich schreibe in ein Textfeld.Beim Eintippen in das Textfeld möchte ich, dass im Hintergrund (beim verlassen der maus oder durch tab) das das Textfeld geprüft wird ob der Inhalt des textes bereits in einer Spalte einer datenbank vorhanden ist.

Arbeite mit Mysql und 5.1.6 connector. Habe bereits ein Select where in einem String und danach mach ich folgendes: ich übergebe den String der database methode die damit folgendes macht:

Code:
	Statement st;

		st = cn.createStatement();
		st.execute(query);
		cn.close();


query ist der String. CN ist ebenfalls vorhanden und habe auch schon geprüft ob sie geht. Meine frage ist nun: was brauche ich um rauszufinden ob der datensatz shcon vorhanden ist? Am besten wäre etwas was true oder false zurück gibt.

LG und schönen ABend.
 
S

SlaterB

Gast
select * oder count(*) from irgendwas where irgendwas aus dem Textfeld

wenn Ergebnismenge leer, dann false, sonst true
 
S

SlaterB

Gast
genau, ResultSet,
vorher zu wissen, was JDBC ist, wird sich als Vorteil herausstellen ;)
 

Sensewell

Mitglied
Ich habe mir nun eine Connection aufgebaut.

Code:
	public static void main (String args[]) throws InstantiationException, IllegalAccessException{
		try{
			Class.forName("com.mysql.jdbc.Driver");
			}
		catch(ClassNotFoundException e){
			e.printStackTrace();
			System.exit(1);
		}
		try{
			con = DriverManager.getConnection("jdbc:mysql://localhost:8854/db","user","pw");
			stmt= con.createStatement();
			rs = stmt.executeQuery("SELECT Interpret FROM cdindex WHERE Interpret='Test'");
			System.out.println(rs.getArray(0));
			while (rs.next()){
				if (!rs.getString(1).equals("Test")){
					System.out.println("nicht vorhanden");
				}
			}
		
		stmt.close();
		con.close();
	}
		catch (SQLException e){
			e.printStackTrace();
			return;
		}

in der Datenbank ist Test nicht enthalten, andere Interpreten aber schon. Wieso gibt er mir nichts aus? Erhalte keine Fehlermeldung...
 
S

SlaterB

Gast
Sieh dir mal die WHERE Bedingung an.

die Abfrage rs.getArray(0) vor dem ersten next()-Aufruf müsste aber das ganze schon abbrechen oder?
 
S

SlaterB

Gast
es geht nicht um Syntaxfehler sondern um deine Frage, warum die keine Nicht-Test-Interpreten erhälst
 
S

SlaterB

Gast
dann noch mal ohne jeden intelligenten Zaunpfahl:

> in der Datenbank ist Test nicht enthalten, andere Interpreten aber schon. Wieso gibt er mir nichts aus?

deine DB-Afrage fragt nur nach Interpreten mit WHERE Interpret='Test' ab,
also können im ResultSet gar keine Interpreten mit anderem Wert enthalten sein,

dass eine Spalte genau wie die Tabelle heißt, ist übrigens generell schlecht, falls es überhaupt funktioniert

-------

wenn du noch andere Fragen hast, dann bitte neu stellen
 

Sensewell

Mitglied
jetzt klingelts.

Ich hab keine spalte die gleich wie die tabelle heisst. die tabelle heisst cdindex.?!

Code:
			rs = stmt.executeQuery("SELECT * FROM cdindex WHERE Interpret = 'Test'");
			if (rs.equals("Test")){
				System.out.println("vorhanden");
			}
			else{
				System.out.println("nicht vorhanden");
			}
		
		stmt.close();
		con.close();
	}
		catch (SQLException e){

ist im resultset alle werte der spalte enthalten?oder prüfe ich mit rs.equals("Test") nur auf den ersten wert der spalte?
 
S

SlaterB

Gast
> Ich hab keine spalte die gleich wie die tabelle heisst. die tabelle heisst cdindex.?!

ok, mein Lese-Fehler ;)

--------

> rs.equals("Test")){

was ist denn das jetzt für ein Code, wieso vergleichst du ein ResultSet mit einem String?
geht gar nicht, vorher war vieles richtig

> oder prüfe ich mit rs.equals("Test") nur auf den ersten wert der spalte?

was sinnvolles machst du damit gewiss nicht

> ist im resultset alle werte der spalte enthalten?

gibt die Query in deinen Query-Browser ein und schau dir die Ergebnisse an,
genau so viele Ergebnisse bekommst du hier auch mit gleichen Aufbau

bevor du etwas programmierst musst du erstmal wissen was SQL ist
 
M

maki

Gast
Weiss zwar nicht was da klingelt, aber du stehst immer noch auf dem Schlauch :)

Kurz:
Du sagst in deinem SQL Statement "gib mir alle Datensätze in denen der Interpret gleich 'test' ist"

Es gibt keine solchen Datensätze.

Dann sagst du in diener while Schleifenbedingung ""gehe alle Ergebnisse durch", es gibt aber keine Ergebnisse, also wird die Schleife NIE durchlaufen.

Alles klar?
 

Sensewell

Mitglied
was sql ist , weiss ich schon. Nur mit java ist es ein wenig schwierig :)

wie vergleiche ich denn einen String den ich suche mit dem resultset ob er im resultset enthalten ist?
 
S

SlaterB

Gast
so wie du es anfangs hattest, abgesehen von
> System.out.println(rs.getArray(0));
 

Sensewell

Mitglied
maki hat gesagt.:
Weiss zwar nicht was da klingelt, aber du stehst immer noch auf dem Schlauch :)

Kurz:
Du sagst in deinem SQL Statement "gib mir alle Datensätze in denen der Interpret gleich 'test' ist"

Es gibt keine solchen Datensätze.

Dann sagst du in diener while Schleifenbedingung ""gehe alle Ergebnisse durch", es gibt aber keine Ergebnisse, also wird die Schleife NIE durchlaufen.

Alles klar?


Ich habe nun einen Select * befehl. somit ist was im resultset.War dann der ansatz (erster post) wieder richtig?
 
S

SlaterB

Gast
keiner hat was anderes behauptet,


weniger interpretieren sondern genau sagen was du wie verstehst und warum du wie den Code änderst usw.,
dass die anfänglichen Antworten wie 'schau dir mal xy an' bei dir zu ungenau waren, haben maki und ich inzwischen ja auch gelernt ;)
 

Sensewell

Mitglied
:). Das ist nett von euch :lol:

Ich glaub das essen war heute bei uns schlecht, ich blicks immer noch nicht:


Code:
			rs = stmt.executeQuery("SELECT Interpret FROM cdindex;");
			  while (rs.next()){ 
		            if (!rs.getString(1).equals("Test")){ 
		               System.out.println("nicht vorhanden"); 
		            } 
		         
			else{
				System.out.println("nicht vorhanden");
			}



nun gibt er mir aus:

nicht vorhanden
nicht vorhanden
nicht vorhanden


Der Fehler ist mir klar. Wie kann ich denn die größe des rs auslesen? müsste ja den rs druchlaufen. das tu ich im moment ja nicht sondern gehe nur auf getString(1).

Sowas wie:

int i rs.size();

getString(i)
und das dann in ne for schleife....
 
G

Guest

Gast
Code:
stmt= con.createStatement();
rs = stmt.executeQuery("SELECT Interpret FROM cdindex WHERE Interpret='Test'"); 
if(rs.next())
   System.out.println("vorhanden");
else
   System.out.println("nicht vorhanden");
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Datenbank abfragen nach bestimmten Wort Datenbankprogrammierung 7
J Datenbank abfragen Datenbankprogrammierung 6
D Daten aus der Firebase-Echtzeitdatenbank abfragen und in Variablen speichern (JAVA) Datenbankprogrammierung 0
O SQL Abfragen mit Mini Datenbank Datenbankprogrammierung 12
M Sql Abfragen Datenbankprogrammierung 1
D 2 Abfragen zusammenfassen Datenbankprogrammierung 7
D MySQL Geburtsdatum per KW abfragen Datenbankprogrammierung 1
W Daten in Java intern abfragen Datenbankprogrammierung 1
Thallius MySQL Tabelle splitten aber wie eine abfragen? Datenbankprogrammierung 10
D geänderte SELECT Abfragen Datenbankprogrammierung 15
D foreignkey abfragen und speichern Datenbankprogrammierung 74
K Viele verschiedenen SQL Abfragen Datenbankprogrammierung 2
J SQLite ResultSet closed -- Wiederholende DB-Abfragen Datenbankprogrammierung 6
R JPA dynamisch auf NULL abfragen Datenbankprogrammierung 2
A MySQL Tabelle ID abfragen und Spalte ausgeben Datenbankprogrammierung 4
K HSQLDB Einzelne Tabellen abfragen? Datenbankprogrammierung 4
F myBatis und komplexe Abfragen Datenbankprogrammierung 3
M MySQL Spaltennamen abfragen Datenbankprogrammierung 2
B Abfragen fehlgeschlagen Datenbankprogrammierung 6
D MySQL Applet MYSQL Abfragen Sicherheit Datenbankprogrammierung 2
E Datenbank Abfragen in eine GUI schreiben Datenbankprogrammierung 8
I Tabelle mit "|" getrennten Werten -> einzelnen Wert davon abfragen Datenbankprogrammierung 15
N Daten aus Datenbank abfragen und anzeigen in der Praxis?? Datenbankprogrammierung 2
S MySQL Server Informationen abfragen Datenbankprogrammierung 6
turmaline [Hibernate] @OneToMany - Eine referenzierte Tabelle abfragen Datenbankprogrammierung 11
Burny91 SQLite ResultSetMetaData abfragen Datenbankprogrammierung 6
T Kleine Tabellen für schnellere abfragen? Datenbankprogrammierung 3
H Derby SQL-Abfragen in Datei abspeichern Datenbankprogrammierung 2
trash SQL, ganze Tabelle abfragen Datenbankprogrammierung 3
E MySQL 2 Fragen zur Syntax von SQL-Abfragen Datenbankprogrammierung 8
brainray Bei MySQL alle Datenbanken eines Servers abfragen Datenbankprogrammierung 3
N mehrere Abfragen nacheinander wie mit MS Access mit JAVA Datenbankprogrammierung 3
MQue größte id in einer Tabelle abfragen Datenbankprogrammierung 4
A Leere Zelle von einer DB abfragen Datenbankprogrammierung 3
G Mehrere Tabellen abfragen Datenbankprogrammierung 7
G SQL Abfragen hardcoded im Quelltext? Datenbankprogrammierung 15
G Prolog abfragen mit Java Datenbankprogrammierung 3
M H2 DAtenbank in .sql datei schreiben/abfragen ? Datenbankprogrammierung 3
A Abfragen, wer zur Zeit angemeldet ist Datenbankprogrammierung 3
S Datentypen einer Tabelle Abfragen? Datenbankprogrammierung 2
G Rechte abfragen Datenbankprogrammierung 8
L MySQL : Funktionsweise von '%' in Abfragen Datenbankprogrammierung 2
G INSERT abfragen ob erfolgreich? Datenbankprogrammierung 5
B Eingefügter Datensatz erneut abfragen. Datenbankprogrammierung 10
E Datentyp numeric abfragen? Datenbankprogrammierung 2
P Daten aus 2 Tabellen mit java abfragen Datenbankprogrammierung 9
F die DN eines LDAP verzeichnisses abfragen Datenbankprogrammierung 2
M Abfragen auf ResultSets Datenbankprogrammierung 3
E Einzelne SQL Abfragen, oder alles zusammen? (veraendert!!!) Datenbankprogrammierung 11
A Viele Abfragen auf einmal: Performance Datenbankprogrammierung 2
Z Zeilen-Anzahl abfragen bei Datenbank Datenbankprogrammierung 4
W RsultSet auf null abfragen funktioniert nicht Datenbankprogrammierung 4
isowiz SELECT SUM() Ergebnis in Java abfragen Datenbankprogrammierung 6
S MySQL Abfragen blockiern den Arbeitsspeicher Datenbankprogrammierung 6
G Anzahl der Datensaetze abfragen Datenbankprogrammierung 11
V Anzahl der Datensätze abfragen Datenbankprogrammierung 9
S Bereiche einer Datenbank abfragen Datenbankprogrammierung 3
N Mehrere Abfragen gleichzeitig - was passiert da? Datenbankprogrammierung 6
D Reihenfolge der Abfragen Datenbankprogrammierung 7
L mehrere Abfragen mit einem Statement!? Datenbankprogrammierung 5
G Select-Abfragen sind sehr langsam Datenbankprogrammierung 7
L Pürfen ob ID bereits vorhanden Datenbankprogrammierung 18
G MySQL Java Problem: Nullpointer Exception obwohl Daten vorhanden sind? Datenbankprogrammierung 2
D UCanAccess / MS Access - Tabelle / Spalte vorhanden Datenbankprogrammierung 3
L Einarbeitung in Hibernate -> wenn gute SQL Kenntnisse vorhanden? Datenbankprogrammierung 2
E Wert '0000-00-00 00:00:00' in Datenbank vorhanden Datenbankprogrammierung 41
R PostgreSQL Tabellen hinzufügen, falls nicht vorhanden Datenbankprogrammierung 3
M Datenbankeintrag bleibt nach Löschen in JSP vorhanden Datenbankprogrammierung 8
A Reihe in Datenbank überschreiben falls bereits vorhanden Datenbankprogrammierung 2
K Prüfen ob Tabelle schon vorhanden Datenbankprogrammierung 7
K ResultSet prüfen,ob es leer ist oder ob vorhanden Datenbankprogrammierung 2
J kompilierung klappt nur wenn main vorhanden ist Datenbankprogrammierung 11

Ähnliche Java Themen

Neue Themen


Oben