Datenbankabfrage
Verwenden Sie die Methode „createStatement“ des Connection-Objekts, um ein Statement-Objekt zu erstellen, verwenden Sie die Methode „executeQuery()“ des Statement-Objekts, um die SQL-Abfrageanweisung auszuführen und die Ergebnismenge zurückzugeben, und lesen Sie dann die Daten aus der Ergebnismenge mithilfe einer Methode wie getXXX(). Nach einer solchen Reihe von Schritten kann die Abfrage an die Datenbank realisiert werden.
[Beispiel] Eine Java-Anwendung greift auf die Datenbank zu. Die Anwendung öffnet die Kandidateninformationstabelle ksInfo und ruft verschiedene Informationen über den Kandidaten ab. Nehmen Sie an, dass die Struktur der Kandidateninformationsdatenbank wie folgt ist:
import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;import java.sql.*;public class Beispiel10_9 erweitert JFrame implementiert ActionListener{ öffentliche statische Verbindung connectByJdbcodbc( String-URL, String-Benutzername, String-Passwort){ Verbindung con = null try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //ODBC-Treiber laden} Catch (Ausnahme e){ e.printStackTrace(); return null; //Laden fehlgeschlagen, Verbindung fehlgeschlagen} try{ con = DriverManager .getConnection(url, Benutzername, Passwort); } Catch (SQLException e){ e.printStackTrace(); return null; String title[] ={"Prüfungsnummer", "Name", "Note", "Adresse", "Lebenslauf"}; JTextField txtNo = new JTextField(8); JTextField txtScore = new JTextField(3); JTextField txtAddr = new JTextField(30); JTextArea txtresume = new JTextArea(); JButton prev = new JButton("next"); ); Statement sql; //SQL-Anweisungsobjekt ResultSet rs; //Speicherabfrageergebnis objectExample10_9(Connection connect){ super("Kandidaten-Informationsanzeigefenster"); setSize(450, 350); try{ sql = connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); rs = sql ("SELECT * FROM ksInfo"); Container con = getContentPane(); con.setLayout(new BorderLayout(0, 6); JPanel p[] = new JPanel[4]; for (int i = 0; i < 4; i++){ p[ i] = new JPane(new FlowLayout(FlowLayout.LEFT, 8, 0)); p[i].add(new JLabel(title[i])); } p[0].add(txtNo); p[2].add(txtScore); JPanel p1 = new JPane(new GridLayout94, 1, 0, 8)); JScrollPane jsp = new JScrollPane(txtResume, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); jsp.setPreforredSize(new Dimension(300, 60); for (int i = 0; i < 4; i++){ p1.add(p[i]); } JPanel p2 = neu JPanel(new FlowLayout(FlowLayout.LEFT, 10, 0); p2.add(new JLabel(title[4])); p2.add(jsp); Jpanel p3 = new Jpanel(); p3.add(prev); p3.add(next); p3.add(first); p3.add(prev.addActionListener(this); next.addActionListener(this); last.addActionlistener(this); rs.first(); } public void changesRecord(Connection connect){ String stuNo = (String)JOptionPane.showInputDialog(null, „Bitte geben Sie die Prüfungsnummer des Kandidaten ein“, „Geben Sie das Dialogfeld für die Prüfungsnummer ein“, JOptionPane.PLAIN_MESSAGE, null, null, „“); .executeQuery ("SELECT * FROM ksInfo"); Container con = getContentPane(); con.setLayout(new Boarderlayout(0, 6)); for (int i = 0; i < ; i++){ p[i] = new JPane(new FlowLayout(flowLayout.LEFT, 8, 0)); p[i].add(new JLabel(title[i]) } p[0].add(txtNo); p[1].add(txtName); p[2].add(txtScore); , 1, 0, 8)); JScrollPane jsp = new JScrollPane(txtResume, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); neues JPanel(neu FlowLayout(FlowLayout.LEFT, 10, 0)); p2.add(new JLableI(title[4])); add(next); p3.add(first); p3.add(last); next.addActionListener(this); last.addActionListener(this); rs.first(); } setVisible(true); readRecord(){ try{ txtNo.setText(rs.getString("Prüfungsnummer")); txtName.setText(rs.getString("name")); txtScore.setText(rs.getString("score")); txtAddr.setText(rs.getString("address")); "Resume")); } Catch (SQLException e){ e.printStackTrace(); return; true; } public void actionPerformed(ActionEvent e){ try{ if (e.getSource() == prev)rs. previous(); else if (e.getSource() == next)rs.next(); (e.getSource() == first)rs.first(); else if (e.getSource() == last)rs.last(); static void main(String args[]){ connect = null; JFrame .setDefaultLookAndFeeDecorated(true); :redsun", "xia", "1234")) == null){ JOptionPane.showMessageDialog(null, „Datenbankverbindung fehlgeschlagen!“); System.exit ( - 1); new example10_9(connect)
Java-Datenbankaktualisierung <br />Datenbankaktualisierungsvorgänge umfassen das Erstellen, Löschen sowie das Hinzufügen, Löschen und Ändern von Datentabellendatensätzen. Wenn es mithilfe von Daten-SQL-Befehlen implementiert wird, verwenden Sie die MethodeexecuteUpdate() des Statement-Paares, um die SQL-Update-Anweisung auszuführen, um die Datentabelle zu ändern. Führen Sie die SQL-Insert-Anweisung aus, um die Datentabellendatensätze hinzuzufügen.
Fügen Sie beispielsweise basierend auf dem vorherigen Datenabfragebeispiel Änderungen und Einfügungen zur Datentabelle hinzu. Aus Platzgründen wird nicht das vollständige Programm angegeben, sondern nur die Methoden zum Implementieren von Änderungen und Einfügungen. Das Programm kann Schaltflächen zum Einfügen, und Speichern hinzufügen, um eine bestimmte Position in der Datentabelle zu finden, den Karbunkeldatensatz zu bearbeiten, zu ändern, einzufügen oder zu löschen und dann auf die Schaltfläche „Speichern“ zu klicken, um die geänderte Datentabelle zu vervollständigen . speichern.
Der folgende Code erklärt, wie die Datentabelle aktualisiert wird. Wenn Sie eine Verbindung zu einer Datentabelle herstellen, müssen Sie angeben, dass das erhaltene ResultSet-Objekt aktualisierbar ist.
stmt = connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);