JDBC Verbindung in einer Funktion

Status
Nicht offen für weitere Antworten.

XoxoL

Mitglied
Guten Abend allersetits,

ich bin ein Anfänger in javaprogrammierung und bin bereit mir alles anzuhören was mir weiter hilft.

Ich versuche eine Verwaltunssoftware für eine Access Datenbank zu schreiben und verstehe noch nicht ganz wie das mit der verbindung zu Daten bank und Ausführen von SQLStatements funktioniert.

Ich habe ein Klasse dbconnect und ein Klasse dbFunktion. In der Klasse dbConnect sollen nur Funktionen sein die die Verbindung, Trenung und Ausführung von SQLStatements ermöglichen z.B. connect(), disconnect(), executeQuery(String qr) und executeUpdate(String qr).

Mein Problem ist ich bringe es nicht fertig die funktionen so zu schreiben, dass ich diese mehrmals benutzen kann.

meine dbconnect Klasse sieht so aus
Java:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;

public class dbconnection {
	
	private static String DBdriver = "sun.jdbc.odbc.JdbcOdbcDriver";
    private static String DBurl = "jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};"
+"DBQ=C:/Users/-XoxoL-/workspace/Buchbinderei_Backup_Backup.mdb";
    Connection con;
    Statement stmt;
    ResultSet rs;
    ResultSetMetaData rsmd;
    int clmCnt;
    String tmp;

    dbconnection() {
        this.con = null;
        this.stmt = null;
        this.rs = null;
        this.rsmd = null;
        this.clmCnt = 0;
        this.tmp = null;
    }

    public void connect(String qr) throws Exception {


        Class.forName(DBdriver);

        con = DriverManager.getConnection(DBurl);
        stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,   ResultSet.CONCUR_UPDATABLE);
        rs = stmt.executeQuery(qr);
        rsmd = rs.getMetaData();
        clmCnt = rsmd.getColumnCount();

    }

    public void dbdisconnect() throws Exception {
        rs.close();
        stmt.close();
        con.close();
    }
}

also ich muss einen SQLStatement an die Funktion connect übergeben
ich will aber eine eigenständige Funktion zum Verbinden und eine zum Ausführen von sql damit ich in einen anderen funktion diese einfach ufrufen kann z.B.

Java:
public void showKunden(){
    dbconnect.connect();
    dbconnect.executeQuery("SELECT * FROM Kunden");
    ..........
    ..........
    dbdisconnect();
}

wenn mir jemand einen Schupser geben könnte wäre ich sehr verbunden
hoffe jemanden irgendwann auch helfen zu können.:oops:
vielen Dank für euere Mühe
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
aus connect() muss der Parameter raus und aller Code hinter Zeile 33,
dieser Code kommt dann in eine neue Methode executeQuery eben MIT dem Parameter qr

falls du mehrere Querys mit einer Connection ausführen willst,
solltest du darauf achten, die alten ResultSets zu schließen oder zumindest alle bis zum Schluss zu merken und dann zu schließen
 
S

SlaterB

Gast
13 Stunden sind schnelle Antwort?
da kann ich mich ja ab jetzt zurücklehnen ;)
 

XoxoL

Mitglied
Ehrlich gesagt habe ich nicht so schnell mit einer Antwort gerechnet, deswegen. :toll:
Ich werde das zuhause ausprobieren bin gerade auf der Arbeit. Danke
 

XoxoL

Mitglied
dein Tip funktioniert super. :toll: danke. allerdings habe ich weiters Problem in der Funktion executeUpdate ???:L

Java:
        stmt = con.createStatement();
        rs = stmt.executeUpdate(qr);
        rsmd = rs.getMetaData();
        clmCnt = rsmd.getColumnCount();
das Problem ist, dass das executeUpdate() einen int zurückgibt, aber wenn ich es so mache
Java:
        stmt = con.createStatement();
        int t = stmt.executeUpdate(qr);
        rsmd = rs.getMetaData();
        clmCnt = rsmd.getColumnCount();

bekome ich eine Fehlermeldung: ResultSet is closed und verweist uf die Zeile
Java:
       rsmd = rs.getMetaData();
wie soll ich den hier am besten vorgehen? damit ich die Daten entlich in die Datenbak bekomme
 
Zuletzt bearbeitet:
S

SlaterB

Gast
bei einem executeUpdate bekommst du wirklich nur einen int,
es ist falsch danach auf ein völlig anderes ResultSet zuzugreifen oder was auch immer,
streiche die letzten beiden Befehle, mach noch was mit dem int-Wert oder gar nix mehr
 

XoxoL

Mitglied
Danke diesmal war es wirklich schnell :meld:. Jetzt bekomme ich keine Fehlermeldung aber auch kein Resultat. Aus C++ weis ich :rtfm: ,dass nach so einer Operation ein update kommen muss ist es hier auch der Fall? Wenn ja dann wie?
 
S

SlaterB

Gast
was ist denn 'so eine Operation', meinst du das executeUpdate?
was bedeutet es, wenn 'nach einem executeUpdate noch ein update kommen muss'?

das Update ändert Daten in der DB, folgende Selects sollten geänderte Daten laden,
andere Connections/ Programme sehen die Änderungen evtl. erst nach einen Commit
 

XoxoL

Mitglied
Entschuldige bitte für die geklaute Zeit :oops:, hab das Problem behoben :D es muss so aussehen:
Java:
public void executeUpdate(String qr) throws Exception {
        connect();
        stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,    ResultSet.CONCUR_UPDATABLE);
        stmt.executeUpdate(qr);
        stmt.close();
        con.close();
    }
und so geht es auch!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
E jdbc Verbindung ohne Einrichten einer DSN möglich ? Datenbankprogrammierung 3
Husamoli345 JSF-JDBC Verbindung Crud Datenbankprogrammierung 15
Thallius MySQL jdbc schließt Verbindung nach vielen Request von selber Datenbankprogrammierung 8
Thallius MySQL Merkwürdiges JDBC Verhalten bei VPN Verbindung. Datenbankprogrammierung 7
X MySQL DB-verbindung ohne JDBC/ODBC Datenbankprogrammierung 1
J Keine Verbindung zu MSSQL DB mit JDBC Datenbankprogrammierung 3
N MySQL com.microsoft.sqlserver.jdbc.SQLServerException: Die Verbindung wurde geschlossen. Datenbankprogrammierung 1
P JDBC Verbindung zur DB klappt nicht Datenbankprogrammierung 6
J Java - JDBC Verbindung zur Datenbank nicht möglich Datenbankprogrammierung 10
J MySQL Verbindung über JDBC scheitert immer Datenbankprogrammierung 2
B JDBC Verbindung mit Postgresql Datenbankprogrammierung 13
G JDBC-Verbindung: User wechseln Datenbankprogrammierung 2
G jdbc grundlegende verbindung zu sql server geht nicht Datenbankprogrammierung 9
M Passwortvergabe bei Verbindung zwischen jdbc und mysqlServer Datenbankprogrammierung 2
P Ich verzweifel an der JDBC Verbindung Datenbankprogrammierung 3
B JDBC Verbindung zu Access Datenbank Datenbankprogrammierung 6
T JDBC Verbindung zum MS-SQL 2005 Datenbankprogrammierung 2
Sanji [JDBC] Verbindung nur zum Host Datenbankprogrammierung 2
B Hilfe! Problem bei Verbindung über JDBC/ODBC Datenbankprogrammierung 4
G JDBC Verbindung zu MySQL-Server auf lokalem Rechner Datenbankprogrammierung 5
G JDBC - Verbindung jedesmal neu? Datenbankprogrammierung 10
OnDemand JDBC Client Spring: Pool läuft voll 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
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
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
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
F sun.jdbc.odbc.jdbcodbcdriver wird nicht gefuden 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 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
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

Ähnliche Java Themen


Oben