[JDBC] Ich habe versucht, von Java aus auf die SQLite3-Datenbank zuzugreifen.

Dieses Mal habe ich während der Softwareentwicklung den Datenbankzugriff von Java aus studiert und es ist mir gelungen, die Datenbank zu lesen. Deshalb habe ich einen Artikel geschrieben. Da dies fast meine erste Erfahrung mit dem Zugriff auf eine Datenbank mit JDBC ist, möchte ich dies Schritt für Schritt als Überprüfung von SQLite3 tun.

Informationen zur Verwendung von SQLite3 finden Sie im Artikel Qiita: Zusammenfassung der SQLite3-Betriebsbefehle.

Umgebung

Die Entwicklungsumgebung ist diesmal wie folgt.


Erstellen Sie eine Datenbank

Erstellen Sie im Voraus eine Datenbank, um Elemente aus einer vorhandenen Datenbank zu lesen.

Datenbank erstellen


sqlite3 test.db

Definieren Sie Tabelle1


CREATE TABLE table1(id INTEGER PRIMARY KEY, name TEXT NOT NULL);

Zu diesem Zeitpunkt wird eine Datenbankdatei im Verzeichnis erstellt. testJDBC_Qiita.png

Ich habe einige Daten in die INSERT-Anweisung eingefügt, also sehen wir sie uns in der SELECT-Anweisung an.

SELECT * FROM table1;
id          name      
----------  ----------
1           satou     
2           suzuki    
3           tanaka    
4           katou     
5           takahashi 

Ich konnte die Datenbank bestätigen.


JDBC herunterladen

Für den Zugriff auf SQLite3 von Java aus benötigen Sie den JDBC-Treiber. Laden Sie JDBC aus dem JDBC-Repository herunter (https://bitbucket.org/xerial/sqlite-jdbc/downloads/). Ich denke, die Version kann eine beliebige sein, aber dieses Mal werde ich zum Zeitpunkt des Schreibens die neueste Version von "sqlite-jdbc-3.30.1.jar" herunterladen.

Nachdem Sie den JDBC heruntergeladen haben, kopieren Sie ihn in das Verzeichnis, das die gerade erstellte Datenbank enthält.


Java-Programmiererstellung

Dieses Mal habe ich eine Java-Datei erstellt, indem ich basierend auf dem Code der Site, auf die ich verwiesen habe, entsprechende Änderungen vorgenommen habe.

TestDAtabaseDriver.java


import java.sql.*;

public class TestDatabaseDriver {
    public static void main(String[] args) {
 
        Connection connection = null;
        Statement statement = null;
 
        try {
            Class.forName("org.sqlite.JDBC");

            //Geben Sie den Datenbankpfad an. Es scheint, dass Sie entweder einen relativen oder einen absoluten Pfad wählen können
            connection = DriverManager.getConnection("jdbc:sqlite:test.db");
            statement = connection.createStatement();
            String sql = "select * from table1";
            ResultSet rs = statement.executeQuery(sql);
            while (rs.next()) {
                System.out.println(rs.getString(1));
            }
        } catch (ClassNotFoundException e) {
          e.printStackTrace();
        } catch (SQLException e) {
          e.printStackTrace();
        } finally {
            try {
                if (statement != null) {
                    statement.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                if (connection != null) {
                    connection.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

Kompilieren und ausführen


javac *.java && java -classpath .:sqlite-jdbc-3.30.1.jar TestDatabaseDriver

Ausführungsergebnis


1
2
3
4
5

Aus diesem Ergebnis geht hervor, dass der zu lesende Teil durch den Teil "System.out.println (rs.getString (1))" von TestDAtabaseDriver.java bestimmt wird. Nehmen wir also einige Änderungen vor.

Vorher ändern


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

Nach der veränderung


System.out.println(rs.getString(1) + "|" + rs.getString(2));

Ich werde es versuchen.

Kompilieren und ausführen


javac *.java && java -classpath .:sqlite-jdbc-3.30.1.jar TestDatabaseDriver

Ausführungsergebnis


1|satou
2|suzuki
3|tanaka
4|katou
5|takahashi

Zusammenfassung

Ich konnte die Datenbank sicher lesen. Dieses Mal habe ich JDBC zum ersten Mal ausprobiert, daher wurde das meiste davon kopiert und eingefügt, aber ich möchte den Bereich basierend darauf erweitern und es in hohem Maße wiederverwendbar machen.


Diese Artikeltabellenseite

[Datenbank] SQLite3 / JDBC-Zusammenfassung


Referenzseite

Recommended Posts

[JDBC] Ich habe versucht, von Java aus auf die SQLite3-Datenbank zuzugreifen.
[JDBC] Ich habe versucht, den SQLite3-Datenbankzugriff von Java in eine Methode für jede SQL-Anweisung umzuwandeln.
[Rails] Ich habe versucht, die Version von Rails von 5.0 auf 5.2 zu erhöhen
Ich möchte schnell von Java nach SQLite schreiben
[Java] Ich möchte die Differenz zum Datum berechnen
Ich habe versucht, die Methode der gegenseitigen Teilung von Eugrid in Java zu implementieren
[JDBC ③] Ich habe versucht, mithilfe von Platzhaltern und Argumenten Eingaben über die Hauptmethode vorzunehmen.
Ich habe versucht, die Grundlagen von Kotlin und Java zusammenzufassen
Ich habe versucht, mit Java zu interagieren
Ich habe versucht, die Methode zu erklären
Ich habe das Java-Framework "Quarkus" ausprobiert.
Ich habe versucht, das Java-Lernen zusammenzufassen (1)
Der Weg von JavaScript nach Java
Ich habe jetzt versucht, Java 8 zusammenzufassen
Ich habe versucht, die Fehlermeldung beim Ausführen von Eclipse (Java) zu übersetzen.
Ich habe versucht, die Methoden von Java String und StringBuilder zusammenzufassen
[Java] Ich habe versucht, mit der Grabmethode ein Labyrinth zu erstellen ♪
Ich habe versucht, das Java-kompatible FaaS-Formular "Fn Project" auszuführen.
Ich habe versucht, das Paiza-Kampagnenproblem "Herausforderung von Phantomdieb 813" zu lösen.
Ich habe versucht, den Kalender mit Java auf der Eclipse-Konsole anzuzeigen.
Ich habe versucht, die verwendeten Methoden zusammenzufassen
Ich habe versucht, Java-Lambda-Ausdrücke zusammenzufassen
Ich habe das neue Yuan-Problem in Java ausprobiert
Ich habe versucht, das Iterator-Muster zu implementieren
Ich habe versucht, die Stream-API zusammenzufassen
Ich ging zum Java Women's Club # 1
[Einführung in Java] Ich habe versucht, das Wissen zusammenzufassen, das ich für wesentlich halte
Ich habe versucht, den Zugriff von Lambda → Athena mit AWS X-Ray zu visualisieren
Ich habe versucht, die Grammatik von R und Java zu übersetzen [Von Zeit zu Zeit aktualisiert]
R von Java ausführen Ich möchte rJava ausführen
Ich habe versucht, eine Standardauthentifizierung mit Java durchzuführen
Ich habe versucht, die Sitzung in Rails zu organisieren
Java Ich habe versucht, einen einfachen Block zu brechen
Ich habe versucht, eine Java-Methode von ABCL zu verwenden
Ich habe versucht, neunundneunzig in Java auszugeben
Ich habe versucht, Tomcat so einzustellen, dass das Servlet ausgeführt wird.
[Java / PostgreSQL] Verbinden Sie die WEB-Anwendung mit der Datenbank
Ich habe versucht, Alexa-Fähigkeiten mit Java zu erstellen
Ich habe versucht, den Block mit Java zu brechen (1)
Versuchen Sie, mit JDK6 (Java) + JDBC OCI-Treiber (Typ 2) eine Verbindung zur autonomen Datenbank herzustellen.
Versuchen Sie, über die SAP Cloud Platform - JAVA App Edition auf das On-Premise-System zuzugreifen
[Kleine Geschichte] Ich habe versucht, die Java-ArrayList etwas komfortabler zu gestalten
Änderungen von Java 8 zu Java 11
Summe von Java_1 bis 100
Greifen Sie über Java auf API.AI zu
Von Java zu Ruby !!
Ich habe ein Programm erstellt, das aus dem mit Java überladenen Prozess nach der Zielklasse sucht
Tokoro habe ich in der Migration von Wicket 7 auf 8 umgeschrieben
Ich habe versucht, TCP / IP + BIO mit JAVA zu implementieren
Wie schreibe ich Scala aus der Perspektive von Java
[Java 11] Ich habe versucht, Java auszuführen, ohne mit Javac zu kompilieren
[Java] Ich habe versucht, Paizas B-Rang-Problem zu lösen
Ich habe versucht, SQS mit AWS Java SDK zu betreiben