Gewusst wie: abrufen von Daten mithilfe von JDBC
Habe ich versucht mit dem folgenden code.
Die Verbindung hergestellt wird. Aber die resultSet
kommt als leer (nicht null), in der Erwägung, dass es gibt ein paar Einträge (2 Felder) in der Datenbank für die gleichen.
Er nicht in die while-Bedingung. Ich bin neu in JDBC-bitte um Hilfe!!
Mein code ist:
import java.sql.*;
public class JDBCTest123
{
public static void main(String[] args)
{
System.out.println("oracle Connect Example.");
Connection conn = null;
String url = "jdbc:oracle:thin:@127.0.0.1:1521:XE";
String driver = "oracle.jdbc.driver.OracleDriver";
String userName = "system";
String password = "mumpymamai";
Statement stmt = null;
String query = "select * from table1";
try
{
Class.forName(driver);
conn = DriverManager.getConnection(url, userName, password);
stmt = conn.createStatement();
System.out.println("Connected to the database");
ResultSet rs = stmt.executeQuery(query);
while (rs.next())
{
System.out.println(rs.getString(1));
System.out.println(rs.getString(2));
}
conn.close();
System.out.println("Disconnected from database");
} catch (Exception e)
{
e.printStackTrace();
}
}
}
Und die Ausgabe ist:
oracle Connect Example.
Connected to the database
Disconnected from database
- Formatieren Sie die Ausgabe richtig, genau so, wie es kam(obwohl es offensichtlich ist, in diesem Fall ist es generell eine gute Praxis, geben Sie die Ausgabe wie Ihr terminal zeigte es.)
Du musst angemeldet sein, um einen Kommentar abzugeben.
So einige Vorschläge. Ich empfehle, Sie verwenden
PreparedStatements
die sind schneller und sicherer.Zweiten Vorschlag, rufen Sie
close()
Methode im finally-block, weil die Anwendung kann Abstürzen, und dann wird Ihre Verbindung nicht geschlossen werden. Finally-block garantiert, dass wird immer aufgerufen wird.Dritter Vorschlag, wenn es nicht funktioniert, ohne
Exception
, wahrscheinlich haben Sie eine leere Tabelle.