# Datenbank abfragen nach bestimmten Wort



## Niklas5548 (11. Jan 2022)

Hallo auf dem Bild sehen sie mein Quellcode. Ich muss ein Projekt für die Schule fertig machen und verstehe nicht wie ich machen kann, dass wenn der name/Nummer die gesucht wurde gefunden wurde, dass ich davon die Spalte und Zeile bekomme damit ich von dieser Person bestimmte sachen auslesen kann ?
Wäre nett wenn mir jemand hilft muss es morgen abgeben
Mit Freundlichen Grüßen
Niklas


----------



## Oneixee5 (11. Jan 2022)

Für ResultSet gibt es verschieden get...-Methoden:

```
if (rs.next()) {
    System.out.println(rs.getString("NAME")); // Wert in der Spalte Name
    System.out.println(rs.getObject(1)); // Wert in der ersten Spalte
}
```


----------



## Oneixee5 (11. Jan 2022)

Bitte poste deinen Code noch mal als Text in Code-Tags </>, gleich links das erste Symbol im Editor-Fenster.
Es gibt noch weitere Problem mit dem deinem Code. Wenn dieser in Textform vorhanden ist, kann dir besser geholfen werden.


----------



## Niklas5548 (11. Jan 2022)

Oneixee5 hat gesagt.:


> Bitte poste deinen Code noch mal als Text in Code-Tags </>, gleich links das erste Symbol im Editor-Fenster.
> Es gibt noch weitere Problem mit dem deinem Code. Wenn dieser in Textform vorhanden ist, kann dir besser geholfen werden.


[CODE lang="java" title="Code"]                       System.out.println("Hallo");

                        Connection verbindung;
                        Statement sqlAnweisung;
                        String sqlCode;

          try
                            {
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            verbindung = DriverManager.getConnection("jdbc:mysql://localhost?user=root");

            sqlAnweisung = verbindung.createStatement();
                        System.out.println("Verbindung erzeugt");


            //Diese Datenbank wird benutzt
            sqlCode = "USE firma";
            sqlAnweisung.executeUpdate(sqlCode);

                        sqlCode = "SELECT * FROM personen WHERE Vorname='pimmel'";
                        sqlAnweisung.executeUpdate(sqlCode);

                    try(PreparedStatement stmt = verbindung.prepareStatement(sqlCode)) {
                            ResultSet rs = stmt.executeQuery();
                            rs = stmt.executeQuery("SELECT * FROM personen WHERE Vorname='pimmel'");
                            if(rs.next())
                            System.out.println("vorhanden");
                            else
                            System.out.println("nicht vorhanden");

                            verbindung.close();
                    }



        }
        catch(SQLException ex)
        {
            System.out.println("SQL: " + ex.getMessage());
        }
        catch(Exception ex)
        {
            System.out.println("Allgemein:" + ex.getMessage());
        }[/CODE]


----------



## Niklas5548 (11. Jan 2022)

Oneixee5 hat gesagt.:


> Bitte poste deinen Code noch mal als Text in Code-Tags </>, gleich links das erste Symbol im Editor-Fenster.
> Es gibt noch weitere Problem mit dem deinem Code. Wenn dieser in Textform vorhanden ist, kann dir besser geholfen werden.


Und wie würde ich dann machen das die eingabe in das texfeld dann dort steht wo der Name der gesucht ist steht ?


----------



## Mart (11. Jan 2022)

```
Class.forName("com.mysql.jdbc.Driver").newInstance();
```
also
du suchst nach einer klasse ( class not found exception ) mit einem string , nimmst das new instance her ( was deprecated ist und nicht verwendet werden soll ) um eine neue instanz zu erstellen... die du nicht speicherst


----------



## Oneixee5 (11. Jan 2022)

```
public static void main(final String[] args) {

        try (Connection connection = DriverManager.getConnection("jdbc:mysql://localhost?user=root")) {

            try (PreparedStatement useStatement = connection.prepareStatement("USE firma")) {
                useStatement.executeUpdate();
            }

            findPersonByVorname(connection, "TestVorname");
        } catch (final SQLException ex) {
            System.out.println("SQL: " + ex.getMessage());
        }

    }

    private static void findPersonByVorname(Connection connection, String vorname) throws SQLException {
        try (PreparedStatement selectStatement = connection.prepareStatement("SELECT * FROM personen WHERE Vorname=?")) {
            selectStatement.setString(1, vorname);

            try (ResultSet resultSet = selectStatement.executeQuery()) {
                if (resultSet.next()) {
                    System.out.println("Text der ersten Spalte: " + resultSet.getString(1));
                } else {
                    System.out.println("nicht gefunden");
                }
            }
        }
    }
```


----------



## Oneixee5 (11. Jan 2022)

Niklas5548 hat gesagt.:


> Class.forName("com.mysql.jdbc.Driver").newInstance();


Das ist veraltet und sollte mit einem aktuellen Treiber nicht gebraucht werden.


----------

