Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Fehlermeldung

Empfohlene Antworten

Veröffentlicht

Hallo,

kann mir jemand bei diesen Fehlermeldugen weiter helfen??

import java.sql.*;

import java.io.*;

public class Test

{

Connection conn = null;

public static void main (String args []) throws SQLException

{

Test pgm = new Test();

DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());

pgm.conn =

DriverManager.getConnection ("jdbc:oracle:thin:@xxx:xxx:xxxx",

"xxx", "xxxx");

Statement stmt = pgm.conn.createStatement();

ResultSet rset = stmt.executeQuery ("select aufnr from command");

while (rset.next ())

System.out.println (rset.getString (1));

}

}

Erste Classe für die DB Verbindung

import java.sql.*;

import java.io.*;

public class Test1 extends Test{

public void db()throws SQLException{

try{

Statement stm = conn.createStatement();

ResultSet rset = stm.executeQuery("select * from tb1");

ResultSetMetaData stm = rset.getMetaData();

int y = stm.getColumnCount();

}catch (IOException err) {

System.out.println("Fehler \n" +err);

}

}

}

Zweite Classe für SQL Abfrage!

Bekomme aber in der zweiten Classe diese Ferhlermeldungen:

Test1.java [11:1] stm is already defined in db()

ResultSetMetaData stm = rset.getMetaData();

^

Test1.java [12:1] cannot resolve symbol

symbol : method getColumnCount ()

location: interface java.sql.Statement

int y = stm.getColumnCount();

Woran kann das liegen???????

Hallo,

das mit dem getcolumnCount() liegt daran, das du die Methode auf dem Statement aufrufst, das geht nicht, du mußt sie Entweder auf dem ResultSet oder ResultMetaData aufrufen, bin mir da auch im moment nicht ganz sicher. Aber auf jeden fall auf einen von den beiden. Der erse Fehler, du versuchst das ResultMetaDataSet in ein Statement zu setzen, das geht nicht.

mach dir lieber eine ReseltMetaData rsmd = rset.getMetaData;

Das müste es eigentlich gewesen sein.

Übernehme aber keine Verantwortung:)

hab ich auch grade gemerkt, aber danke. War noch die Müdigkeit, jetzt läuft es. Aber gibt mir in der Methode Test1 keine Ausgabe, Bildschirm bleibt leer.

import java.sql.*;

import java.io.*;

public class Test1 extends Test{

public void Test1()throws SQLException{

System.out.println("Hello");

try{

Statement stm = conn.createStatement();

ResultSet rset = stm.executeQuery("select * from sa06tab");

ResultSetMetaData stm1 = rset.getMetaData();

int y = stm1.getColumnCount();

while(rset.next()){

System.out.println(rset.getString(1));

System.out.println("Hello");

}

}catch (SQLException err) {

System.out.println("Fehler \n" +err);

}

}

}

habe es schon mit

this.test1();

oder

test1();

probiert gibt aber nur Fehlermeldungen.

Hallo,

Original geschrieben von startup

probiert gibt aber nur Fehlermeldungen.

schön und welche? Meine Kristallkugel ist nämlich gerade kaputt. :D

public void Test1()throws SQLException{

ist schon mal eine Mischung aus Konstruktor und Funktion. Ich kann mir nicht vorstellen, dass das überhaupt compiliert wird.

Gruß Jaraz

Nachtrag: Compilen geht, also sollte die Syntax stimmen. Obwohl ich das sehr ungewöhnlich finde. Dann hilft nur noch die Fehlermeldung.

Okay da hast du wohl recht! :D

import java.sql.*;

import java.io.*;

public class SQLAbfrage extends DBZugriff{

public void DB()throws SQLException{

System.out.println("Hello");

try{

Statement stm = conn.createStatement();

ResultSet rset = stm.executeQuery("select * from sa06tab");

ResultSetMetaData stm1 = rset.getMetaData();

int y = stm1.getColumnCount();

while(rset.next()){

System.out.println(rset.getString(1));

System.out.println("Hello");

}

}catch (SQLException err) {

System.out.println("Fehler \n" +err);

}

}

db();

}

Fehlermeldung:

SQLAbfrage.java [21:1] invalid method declaration; return type required

db();

^

1 error

Errors compiling class SQLAbfrage.

Ich verstehe das mit dem return net, wenn darin liegst was muß ich da machen?

Grüße

startup

import java.sql.*;
import java.io.*;

public class SQLAbfrage extends DBZugriff{

//Konstruktor
public SQLAbfrage(){
this.db();
}

//Funktionsnamen sollten immer klein anfangen
public void db()throws SQLException{
System.out.println("Hello");
try{
Statement stm = conn.createStatement();
ResultSet rset = stm.executeQuery("select * from sa06tab");
ResultSetMetaData stm1 = rset.getMetaData();
int y = stm1.getColumnCount();
while(rset.next()){
System.out.println(rset.getString(1));
System.out.println("Hello");
}
}catch (SQLException err) {
System.out.println("Fehler \n" +err);
}
}
}[/PHP]

Versuchs mal so.

Tut mir leid funkzioniert nicht, kommt:

SQLAbfrage.java [8:1] unreported exception java.sql.SQLException; must be caught or declared to be thrown

this.db();

^

1 error

Errors compiling class SQLAbfrage.

Danke.

Stimmt, habe ich übersehen.

public void db()throws SQLException{

da du alle SQL Aufrufe im try catch Block hast, ist throws SQLException überflüssig.

Gruß Jaraz

Tut mir leid das hatt ich auc schon, es startet gibt mir rückgabe Wert von da Tabelle. Und das wars nix von Hello oder Daten zusehen!

Was nun?

Gruss

Startup

Ich habe deine Klasse jetzt mal kurz in mein Projekt kopiert und habe keine Probleme damit.

Also muss der weitere Code deines Programms fehlerhaft sein.

Gruß Jaraz

Ich habe nur nie zwei Classen, die erste die auf die Datenbank zugreift, und die zweite die die das Sql abfrägt. Habe auch beide gepostet, an kann es denn noch liegen?????

Danke

Startup

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.