Diverse JDBC Probleme (inner join, rs.last(), update)

Status
Nicht offen für weitere Antworten.
T

TT

Gast
Guten Morgen,

es ist nicht so, dass ich nicht schon gegooglet hätte oder die Forensuche usw. benutzt hätte aber ich komme (leider) trotzdem nicht klar mit so einigen JDBC Sachen.

Am besten fange ich wohl mal mit dem wichtigsten an:

1. Das Problem, einen neuen Datensatz in eine Tabelle zu schreiben:
Ich hab also in meiner Vereindatenbank die Tabelle Personen, in die ich gerne einen ganzen Datensatz schreiben würde, allerdings scheiter ich schon daran, einen Attributwert reinzuschreiben...

Ich hab die Fachklasse CMitglieder und eine Klasse für ein Panel, auf dem sich die JTextFields befinden, über die die Eingabe stattfindet.

In der besagten Panelklasse hab ich folgende Methode definiert:

Code:
public void neuesPassivesMitglied()
 	{
 		
 		CMitglieder neuesMitglied = new CMitglieder();
       		CAdresseT neueAdresseT = new CAdresseT();	
       		
       		neuesMitglied.setMitgliedsnummer(dieNeueMitgliedsnummer);
       		neuesMitglied.setName(tfName.getText());
			neuesMitglied.setVorname(tfVorname.getText());
			neuesMitglied.setBeitrag(beitrag);
			neuesMitglied.setGeschlecht(tfGeschlecht.getText());			
			neueAdresseT.setStrasse(tfStrasse.getText());
			neueAdresseT.setPLZ(tfPLZ.getText());
			neueAdresseT.setOrt(tfOrt.getText());

			neuesMitglied.neuesPassivesMitgliedanlegen(neuesMitglied.getName());
	}//public void neuesPassivesMitglied()

Ich möchte also neue Instanzen der Fachklassen erstellen, die ihre Werte zugewiesen bekommen. Das Attribut "Name" möchte ich an die Fachklasse CMitglieder übergeben, in der sich folgende Methode befindet:

Code:
public void neuesPassivesMitgliedanlegen(String pName) 
    {
    	try
		{
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			String url = "jdbc:odbc:Vereindatenbank"; 
     		Connection con = DriverManager.getConnection(url); 
			
			Statement stmt = con.createStatement();
		
		   String insertQuery = "INSERT INTO Personen(Name) VALUES("+pName+")";
 
		    stmt.executeUpdate(insertQuery);

	       
            stmt.close();          
	con.close();	
      	} 
      		
      	catch(java.lang.ClassNotFoundException e)
		{
			System.out.println("JDBC-ODBC-Treiber nicht gefunden");
		} 
		
		catch(java.sql.SQLException e)
		{
			System.out.println("Fehler beim Abfragen der Datenbank");
			e.printStackTrace();
		}   
    }

Da die Fehlermeldung, die ich beim Ausführen bekomme ziemlich lang ist, fasse ich sie mal kurz zusammen:
Mir wird also gesagt, dass ein Parameter erwartet wurde, aber zu wenige übergeben wurden und es gibt eben eine SQLException.

Ist mein Vorgehen prinzipiell überhaupt in Ordnung, dass ich so eine Methode in die Fachklasse schreibe oder gibt es bessere Lösungen?


Das zweite Problem ist, dass ich bei einer Abfrage von Datenbankwerten mit Befehlen wie .last(); oder .afterlast() nicht zurecht komme:
Ich würde in einem GUI Fenster gerne die Mitgliedsnummer, die das nächste neue Mitglied (also der nächste Datensatz, der generiert wird aber bisher nicht existiert) bekommt ausgeben (die Nummer wird von Access automatisch generiert)

Code:
		Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

		Connection con = DriverManager.getConnection("jdbc:odbc:Vereindatenbank");
		Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
                       						     ResultSet.CONCUR_UPDATABLE );
       		String selectQuery = "SELECT Mitgliedsnummer FROM Personen";
		ResultSet rst = stmt.executeQuery(selectQuery);
                        rst.afterLast();
		String test = rst.getString("Mitgliedsnummer");
		System.out.println(test);
(try und catch hab ich jetzt mal weggelassen)
Ich hab da jetzt schon diverse Möglichkeiten ausprobiert aber es kommt jedes Mal zu einer SQL-Exception. Ich hab mich auch an der API orientiert aber irgendwie klappt es einfach nicht.
Deswegen meine Frage: Wie kann ich die Mitgliedsnummer abfragen, die der neue Datensatz bekommen wird abfragen?

Mein drittes und vorerst letztes Problem hat "lediglich" mit einem SQL-Statement zu tun:
Die Tabelle Personen hat den Primärschlüssel Mitgliedsnummer und über diesen ist sie mit der Tabelle Vorstand, Trainer und Spieler verbunden.
Ich würde dann gerne nur die Mitglieder abfragen, bei denen die jeweiligen Attribute in den anderen Tabellen leer sind (also z.B. WHERE Funktion NULL, um die Vorstandsmitglieder nicht abzufragen).
Den normalen "inner join - befehl" kenn ich ja, der lautet ja:
SELECT Feldname1, Feldname2
FROM Tabelle 1 INNER JOIN Tabelle2 ON Tabelle1.Feldname3=Tabelle2.Feldname3;
Aber bräuchte ich dann drei Inner Joins oder wie mach ich das und würde ich das dann mit Kommas trennen oder wir ordne ich das an?

Wenn sich jemand die Mühe machen würde und mir helfen würde, wäre ich wirklich sehr dankbar...
Ich würde es ja noch weiter alleine versuchen aber da das Ganze für ein Projekt ist und mir langsam die Zeit wegläuft kann ich nur auf eure Hilfe hoffen, wobei ich natürlich trotzdem weiterhin versuchen werde, das zu lösen...

Lieber Gruß,
TT
 

Caffè Latte

Bekanntes Mitglied
Hi,

mich würden mal die kompletten Meldungen interessieren. Mittels Copy & Paste dürfte die Länge ja nicht das Problem sein.

Problem 1:
Ich vermute mal, dass der Wert in Hochkommas gestellt werden muss (bin kein Accesskenner):

String insertQuery = "INSERT INTO Personen(Name) VALUES('"+pName+"')";

2. Problem:
Die von dir gesuchte Methode ist last(), nicht afterLast() - sonst steht ja der DB-Cursor hinter dem Letzen Datensatz.

Zum 3. Problem kann ich nichts sagen, denn ich kenne den Access-Dialekt nicht.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
-MacNuke- Diverse Fragen zu ORM (Hibernate, JPA, etc.) Datenbankprogrammierung 6
B SQLite + jdbc + IntelliJ-Consumer = "No suitable driver found..." Datenbankprogrammierung 15
J PC-Start Problem JDBC Connection Datenbankprogrammierung 10
N JDBC SQLITE und Cascading Datenbankprogrammierung 2
D Asynchrone Aufrufe mit jdbc Datenbankprogrammierung 5
Edin JDBC Hilfe Datenbankprogrammierung 2
H JDBC Tabellen ausgeben Datenbankprogrammierung 8
Husamoli345 JSF-JDBC Verbindung Crud Datenbankprogrammierung 15
G MySQL JDBC Metadaten auslesen aus .accdb -> Primärschlüssel manchmal erkannt manchmal nicht Datenbankprogrammierung 3
N Java, sql, jar, JDBC-Treiber in Classpath Datenbankprogrammierung 8
O Create Table per JDBC Fehler: ORA-00922 Datenbankprogrammierung 4
J JDBC anschaulich präsentieren Datenbankprogrammierung 2
Thallius MySQL JDBC auf Linux Server zu mySQL DB auf anderem Linux Server wirft Access denied Datenbankprogrammierung 5
ralfb1105 Oracle JDBC Debugging Datenbankprogrammierung 8
Z [JDBC][MYSQL] Access denied Datenbankprogrammierung 7
Thallius MySQL jdbc schließt Verbindung nach vielen Request von selber Datenbankprogrammierung 8
B MySQL JDBC Kommentarfilter Datenbankprogrammierung 4
Aruetiise MySQL Name JDBC Drive finden Datenbankprogrammierung 4
E Sqlite-jdbc Mitliefern Datenbankprogrammierung 4
R jdbc-Zugriff Nicht erlaubt ? Datenbankprogrammierung 16
S probleme mit dem jdbc treiber Datenbankprogrammierung 1
Thallius MySQL Merkwürdiges JDBC Verhalten bei VPN Verbindung. Datenbankprogrammierung 7
O JDBC Daten in zwei Tabellen mit zwei foreach-Schleifen einfügen (insert into) Datenbankprogrammierung 1
F MySQL JDBC Problem Datenbankprogrammierung 5
C JDBC und SQLite Datenbank Datenbankprogrammierung 8
looparda SQLite Active JDBC Abstraktion Datenbankprogrammierung 2
J JDBC SQL Statement mit Parameter Datenbankprogrammierung 7
S JDBC PreparedStatement durchiterieren Datenbankprogrammierung 6
J RESTServie + JDBC + No suitable driver found for jdbc Datenbankprogrammierung 4
KaffeeFan JDBC/ODBC-Bridge entfernt Datenbankprogrammierung 4
S sun.jdbc.odbc.JdbcOdbcDriver wird nicht gefunden Datenbankprogrammierung 2
J Fehlende DatenbankView nach einbeziehen von JDBC Datenbankprogrammierung 3
A Mit JDBC auf postgreSQL Datenbank zugreifen Datenbankprogrammierung 5
C PostgreSQL JDBC + PostgreSQL: getLong liefert 0 statt NULL Datenbankprogrammierung 2
flenst111 SQL-Statement Wie konfiguriert man JDBC-Connect.richtig, damit es bei riesigen Tabs keinen Speicherüberlauf gibt? Datenbankprogrammierung 1
M JDBC Tabellen mit Boolean Spalten können nicht erstellt werden. DB Updaten - wie? Datenbankprogrammierung 6
S JDBC mit Postgres DB connecten Datenbankprogrammierung 3
A Eine MySQL Zeile mit JDBC löschen Datenbankprogrammierung 5
D JDBC - Verständnisfrage Datenbankprogrammierung 2
C Tabelle erstellen mit Apache JDBC-Util Datenbankprogrammierung 1
L Conversion-Error bei JDBC Date Literals Datenbankprogrammierung 3
X MySQL DB-verbindung ohne JDBC/ODBC Datenbankprogrammierung 1
F sun.jdbc.odbc.jdbcodbcdriver wird nicht gefuden Datenbankprogrammierung 3
J Keine Verbindung zu MSSQL DB mit JDBC Datenbankprogrammierung 3
U JDBC prepaird Statements Datenbankprogrammierung 4
B MySQL JDBC Zugriff auf entfernt Datenbank, fehlende Rechte Datenbankprogrammierung 2
Q MySQL JDBC-Treiber Problem Datenbankprogrammierung 2
R Transaktionen von mehreren Anwendungen aus - JDBC Datenbankprogrammierung 3
N MySQL com.microsoft.sqlserver.jdbc.SQLServerException: Die Verbindung wurde geschlossen. Datenbankprogrammierung 1
N JDBC: rollback() bei Exception geht nicht!? Datenbankprogrammierung 1
C Dateipfad des jdbc Treibers Datenbankprogrammierung 2
G JDBC Connect nur über SID fehlerfrei möglich Datenbankprogrammierung 2
R Oracle jdbc Zugriff auf Oracle Datenbankprogrammierung 2
T JDBC Fehler Datenbankprogrammierung 2
J JDBC via Singleton Datenbankprogrammierung 12
Z PostgreSQL JDBC mit Postgresql Datenbankprogrammierung 2
B No suitable driver found for jdbc:oracle:thin:@$HOST:$PORT:$SID Datenbankprogrammierung 7
K JDBC via Netzwerk Datenbankprogrammierung 4
B JDBC Connection Fehler Datenbankprogrammierung 8
K JDBC- In Java "stored procedure" erstellen für DB2,OracleSql ... Datenbankprogrammierung 3
J JDBC in Library|"Treiber konnte nicht geladen werden"" Datenbankprogrammierung 2
B JDBC-Connection: Data source name too long Datenbankprogrammierung 3
D JDBC insert mit select abfrage Datenbankprogrammierung 5
A JDBC Prepared Statement Autoincrement Datenbankprogrammierung 3
H JDBC prüfen ob Table existiert Datenbankprogrammierung 3
crashfinger jdbc-connection mit jre7 funktioniert nicht Datenbankprogrammierung 5
0 JDBC Oracle Verbindungsaufbau Datenbankprogrammierung 6
Q Oracle Linux: ClassNotFoundException: oracle.jdbc.driver.OracleDriver Datenbankprogrammierung 6
B JDBC MySQL Statement Datenbankprogrammierung 3
F Oracle Oracle JDBC Anbindung unter Glassfish 3.1.2 Datenbankprogrammierung 3
V PostgreSQL JDBC Treiber fehlt Datenbankprogrammierung 6
Y JDBC - Datenbankabfrage Webserver Datenbankprogrammierung 4
C JDBC Datenbank funktioniert nicht Datenbankprogrammierung 7
C JDBC , JDO oder JPA Datenbankprogrammierung 17
J MySQL Datenbank konfigurieren, JDBC, MySQL oder Hibernate Datenbankprogrammierung 2
P JDBC Verbindung zur DB klappt nicht Datenbankprogrammierung 6
J Java - JDBC Verbindung zur Datenbank nicht möglich Datenbankprogrammierung 10
K JDBC Buch kaufen? Datenbankprogrammierung 3
K Hibernate vs. JDBC Datenbankprogrammierung 4
K JDBC Driver not found Datenbankprogrammierung 10
GianaSisters Per JDBC auf Microsoft SQL 2005 Datenbankprogrammierung 24
S ich brauche tipps für JDBC Datenbankprogrammierung 4
Paristick MSSQL - JDBC Exception beim Registrieren Datenbankprogrammierung 5
S Applet stucks at SQL Connection (jTDS JDBC) Datenbankprogrammierung 15
R MySQL Voraussetzungen für eine erfolgreiche Datenbankanbindung mittels JDBC Datenbankprogrammierung 2
c_sidi90 JDBC Oracle Connection schlägt fehl Datenbankprogrammierung 2
J jdbc-dataSource in Klassen nutzen Datenbankprogrammierung 2
H Rechnen in Datenbanken - JDBC Mittel der Wahl? Datenbankprogrammierung 32
K MySQL JDBC - Access Datenbank - unbekannter TabellenName Datenbankprogrammierung 4
D JDBC Fehler beim laden der nativen Bibliothek db2jcct2 Datenbankprogrammierung 9
J MySQL Verbindung über JDBC scheitert immer Datenbankprogrammierung 2
I Master/Detail Tabellen mit JDBC und Swing Datenbankprogrammierung 10
S MSSQL JDBC "Driver class not found" Datenbankprogrammierung 9
E Datenbankverbindung mit Oracle JDBC und Eclipse Plugin Quantum db Datenbankprogrammierung 2
ruutaiokwu jdbc connection als singleton Datenbankprogrammierung 11
J MySQL Löschen von Rows mit JDBC Datenbankprogrammierung 9
G JDBC Exception Datenbankprogrammierung 3
Screen Ich suche eine SQLDatenbank ohne JDBC-Treiber Datenbankprogrammierung 12
F Fehlerhandling bei JDBC Datenbankprogrammierung 9
T JDBC und Arrays Datenbankprogrammierung 7

Ähnliche Java Themen

Neue Themen


Oben