Wie man Daten anhält, um in Java zu postgresql

Wie man Daten anhält, um in Java zu postgresql

Java ist heutzutage vielleicht die am häufigsten verwendete Programmiersprache. Die Robustheit und die plattformunabhängige Natur ermöglichen es Java-basierten Anwendungen, hauptsächlich auf alles auszuführen. Wie bei jeder Anwendung müssen wir unsere Daten auf eine zuverlässige Weise speichern - diese Notwendigkeit, die als Datenbanken zum Leben geraten ist.

In Java -Datenbankverbindungen werden Verbindungen von JDBC (Java Database Connectivity API) implementiert, damit der Programmierer verschiedene Arten von Datenbanken auf die gleiche Weise verarbeiten lässt, was unser Leben erheblich erleichtert, wenn wir Daten aus einer Datenbank speichern oder lesen müssen.

In diesem Tutorial erstellen wir eine Beispiel -Java -Anwendung, mit der eine Verbindung zu einer PostgreSQL -Datenbankinstanz hergestellt und Daten in sie geschrieben werden können. Um zu überprüfen, ob unsere Dateneinführung erfolgreich ist, werden wir auch das Lesen implementieren und die Tabelle, in die wir Daten eingefügt haben.

In diesem Tutorial lernen Sie:

  • So richten Sie die Datenbank für die Anwendung ein
  • So importieren Sie Postgresql JDBC -Treiber in Ihr Projekt
  • So fügen Sie Daten in die Datenbank ein
  • So führen Sie eine einfache Abfrage aus, um den Inhalt einer Datenbanktabelle zu lesen
  • So drucken Sie abgerufene Daten
Ergebnisse des Ausführens der Anwendung.

Softwareanforderungen und Konventionen verwendet

Softwareanforderungen und Linux -Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder Softwareversion verwendet
System Ubuntu 20.04
Software Netbeans IDE 8.2, postgresql 10.12, JDK 1.8
Andere Privilegierter Zugriff auf Ihr Linux -System als Root oder über die sudo Befehl.
Konventionen # - erfordert, dass gegebene Linux -Befehle mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mit Verwendung von ausgeführt werden können sudo Befehl
$ - Erfordert, dass die angegebenen Linux-Befehle als regelmäßiger nicht privilegierter Benutzer ausgeführt werden können

Die Einrichtung



Für die Zwecke dieses Tutorials benötigen wir nur eine Workstation (Desktop oder Laptop), um alle benötigten Komponenten zu installieren. Wir werden nicht die Installation von JDK, der Netbeans IDE oder der Installation der PostgreSQL -Datenbank auf dem Laborgerät abdecken. Wir gehen davon aus, dass die Datenbank rief Beispiele ist aktiv und läuft und wir können mit den folgenden Anmeldeinformationen eine Verbindung herstellen, lesen und schreiben: mit der Kennwortauthentifizierung:

Nutzername: BeispielUser
Passwort: Beispielpass

Dies ist ein Beispiel -Setup. Verwenden Sie starke Passwörter in einem realen Szenario! Die Datenbank wird so eingestellt, dass sie auf Localhost zuhören, was beim Bau des JDBC benötigt wird Verbindungs ​​-URL.

Der Hauptzweck unserer Anwendung ist es, zu zeigen, wie Sie in der Datenbank schreiben und ausgelesen werden. Für die wertvollen Informationen sind wir so darauf bedacht, dass wir einfach eine zufällige Zahl zwischen 1 und 1000 auswählen und diese Informationen mit einem eindeutigen Speicher speichern werden ID der Berechnung und der genauen Zeit, die die Daten in der Datenbank aufgezeichnet werden.

Die ID und der Zeitpunkt der Aufzeichnung werden von der Datenbank bereitgestellt, wodurch unsere Anwendung nur zum realen Problem arbeiten kann (in diesem Fall eine Zufallszahl bereitgestellt). Dies ist absichtlich und wir werden die Möglichkeiten dieser Architektur am Ende dieses Tutorials behandeln.

Einrichten der Datenbank für die Anwendung

Wir haben einen laufenden Datenbankdienst und eine Datenbank mit dem Namen Beispiele Wir haben Recht, mit den oben genannten Anmeldeinformationen zusammenzuarbeiten. Um einen Ort zu haben, an dem wir unsere kostbaren (zufälligen) Daten speichern können, müssen wir eine Tabelle erstellen und auch eine Sequenz, die eindeutige Kennungen auf bequeme Weise liefert. Betrachten Sie das folgende SQL -Skript:

Sequence erstellen resultid_seq starten mit 0 inkrement durch 1 no maxValue minvalue 0 cache 1; Alter Sequence resultid_seq Besitzer zum BeispielUser; TABLE CALC_RESULTS CREATE CALN_RESULTS (RESSION Numeric Primärschlüssel Standard -NextVal ('resultid_seq' :: regclass), result_of_calculation numeric Not Null, Record_date TimestAMP Standard ()); table calc_results Eigentümer zum BeispielUser; 
Kopieren

Diese Anweisungen sollten für sich selbst sprechen. Wir erstellen eine Sequenz und setzen den Besitzer auf BeispielUser, Erstellen Sie eine Tabelle mit dem Namen calc_results (Stehen für „Berechnungsergebnisse“), festgelegt Rückstände automatisch mit dem nächsten Wert unserer Sequenz in jedem Einsatz gefüllt werden und definieren result_of_calculation Und Aufnahmedatum Spalten, die unsere Daten speichern. Schließlich ist auch der Eigentümer der Tabelle auf BeispielUser.

Um diese Datenbankobjekte zu erstellen, wechseln wir zu Postgres Benutzer:

$ sudo su - Postgres

Und führen Sie das Skript aus (gespeichert in einer Textdatei mit dem Namen table_for_java.sql) gegen das Beispiele Datenbank:

$ psql -d exampledb < table_for_java.sql CREATE SEQUENCE ALTER SEQUENCE CREATE TABLE ALTER TABLE

Damit ist unsere Datenbank bereit.

Importieren des PostgreSQL JDBC -Treibers in das Projekt



Um die Anwendung zu erstellen, verwenden wir Netbeans IDE 8.2. Die ersten Schritte sind Handarbeit. Wir wählen das Dateimenü, erstellen ein neues Projekt. Wir lassen die Standardeinstellungen auf der nächsten Seite des Assistenten mit Kategorie „Java“ und Projekt auf „Java -Anwendung“, die Kategorie von „Java“ und "Java -Anwendung" vornehmen. Wir werden als nächstes drücken. Wir geben der Anwendung einen Namen (und definieren optional einen nicht defekten Speicherort). In unserem Fall wird es genannt Persisttopostger. Dadurch wird die IDE für uns ein Basis -Java -Projekt erstellen.

Im Projektbereich klicken wir mit der rechten Maustaste auf "Bibliotheken" und wählen "Bibliothek hinzufügen". In einem neuen Fenster wird angezeigt, in dem wir den Postgresql JDBC -Treiber durchsuchen und auswählen und als Bibliothek hinzufügen.

Hinzufügen des PostgreSQL JDBC -Treibers zum Projekt zum Projekt.

Den Quellcode verstehen

Wir fügen jetzt den folgenden Quellcode zur Hauptklasse unserer Anwendung hinzu, Persisttopostger:

Paket Persisttopostgres; Java importieren.sql.Verbindung; Java importieren.sql.DriverManager; Java importieren.sql.Ergebnis; Java importieren.sql.Sqlexception; Java importieren.sql.Stellungnahme; Java importieren.Util.gleichzeitig.ThreadLocalRandom; öffentliche Klasse Persisttopostgres public static void main (String [] args) int result = threadLocalrandom.aktuell().NextInt (1, 1000 + 1); System.aus.println ("Ergebnis der schwer zu lösenden Berechnung lautet:" + Ergebnis); System.aus.println ("----- postgresql JDBC-Verbindungstest ------"); Versuchen Sie es Klasse.Vorname ("org.PostgreSQL.Treiber "); catch (classNotFoundException cnfe) System.aus.println ("kein PostgreSQL JDBC -Treiber im Bibliothekspfad!"); CNFE.printStacktrace (); zurückkehren;  System.aus.println ("postgresql JDBC -Treiber registriert!"); Verbindung conn = null; try conn = driverManager.GetConnection ("JDBC: postgreSQL: // localhost: 5432/exampledb", "BeispielUser", "BeispielPass");  catch (SQLEXception SQLE) System.aus.println ("Verbindung fehlgeschlagen! Überprüfen Sie die Ausgangskonsole "); SQLE.printStacktrace (); zurückkehren;  if (conn != null) System.aus.println ("Datenbankverbindung hergestellt"); // Abfrage erstellen versuchen Anweisung st = conn.CreateStatement (); st.executeUpdate ("in calc_results einfügen (result_of_calculation) Werte (" + result + ")"); Ergebnisset rs = st.executeQuery ("Reste, result_of_calculation, record_date aus calc_results"); System.aus.println ("In ExamPledB aufgezeichnet folgt: \ n ----------------------- \ n"); während (Rs.next ()) System.aus.println (Rs.GetString ("Rest") + "\ t" + rs.getString ("result_of_calculation") + "\ t" + rs.getString ("record_date"));  // auf der Exit ST reinigen.schließen(); Conn.schließen();  catch (SQLEXception SQLE2) System.aus.println ("Fehler bei der Abfrage"); Sqle2.printStacktrace ();  else System.aus.println ("keine Verbindung herstellen!"); 
Kopieren

  • In Zeile 12 berechnen wir eine Zufallszahl und speichern sie in der Ergebnis Variable. Diese Zahl stellt das Ergebnis einer starken Berechnung dar, die
    Wir müssen in der Datenbank speichern.
  • In Zeile 15 versuchen wir, den PostgreSQL JDBC -Treiber zu registrieren. Dies führt zu einem Fehler, wenn die Anwendung den Treiber zur Laufzeit nicht findet.
  • In Zeile 26 erstellen wir die JDBC -Verbindungszeichenfolge mithilfe des Hostnamens, auf dem die Datenbank ausgeführt wird (localhost), den Port Die Datenbankanhörung (5432, der Standardport für PostgreSQL), den Datenbanknamen (examPledB) und die in der genannten Anmeldeinformationen der Anmeldungen Anfang.
  • In Zeile 37 führen wir die aus einfügen in SQL -Anweisung, die den Wert der einfügt Ergebnis Variable in die result_of_calculation Säule der calc_results Tisch. Wir geben nur den Wert dieser einzelnen Spalten an, sodass Standardeinstellungen angewendet werden: Rückstände wird aus der Sequenz abgeholt, die wir haben
    eingestellt und Aufnahmedatum standardmäßig an Jetzt(), Welches ist die Datenbankzeit im Moment der Transaktion.
  • In Zeile 38 erstellen wir eine Abfrage, die alle in der Tabelle enthaltenen Daten zurückgibt, einschließlich unserer Einfügung im vorherigen Schritt.
  • Aus Zeile 39 präsentieren wir die Daten, indem wir sie auf tabellähnliche Weise drucken, Ressourcen frei machen und beenden.

Ausführen der Anwendung

Wir können jetzt reinigen, bauen und leiten Persisttopostger Anwendung aus der IDE selbst oder aus der Befehlszeile. Um aus der IDE zu laufen, können wir oben die Schaltfläche „Projekt ausführen“ verwenden. Um es aus der Befehlszeile auszuführen, müssen wir zum Navigieren zum Navigieren distanzieren Verzeichnis des Projekts und rufen Sie die JVM mit dem auf KRUG Paket als Argument:

$ Java -Jar Persisttopostgres.JAR-Ergebnis der schwer zu lösenden Berechnung lautet: 173 ----- postgreSQL JDBC-Verbindungstest------- Datenbankverbindung Ermittlung in der Beispiele aufgezeichneten Ergebnisse folgt: --------- ---------- 0 145 2020-05-31 17:40:30.974246

Die Befehlszeile liefert die gleiche Ausgabe wie die IDE -Konsole, aber was hier wichtiger ist, ist, dass jeder Lauf (sei es aus der IDE oder der Befehlszeile) eine andere Zeile in unsere Datenbanktabelle einfügt, wobei die angegebene zufällige Zahl an jedem berechnet wird laufen.

Aus diesem Grund werden wir auch eine wachsende Anzahl von Datensätzen in der Ausgabe der Anwendung sehen: Jeder Lauf wächst die Tabelle mit einer Zeile. Nach ein paar Läufen sehen wir eine lange Liste von Ergebniszeilen in der Tabelle.

Die Datenbankausgabe zeigt die Ergebnisse jeder Ausführung der Anwendung an.

Abschluss

Diese einfache Anwendung hat zwar kaum in der realen Welt, aber es ist perfekt, um einige wirklich wichtige Aspekte zu demonstrieren. In diesem Tutorial haben wir mit der Anwendung eine wichtige Berechnung durchführen und jedes Mal eine Zufallszahl eingefügt, da der Zweck dieses Tutorials darin besteht, zu zeigen, wie die Daten bestehen bleiben. Dieses Ziel, das wir abgeschlossen haben.

Wir haben die Anwendung von einer einzelnen Workstation ausgeführt, aber wenn wir wirklich eine komplizierte Berechnung lösen müssten, müssten wir die Datenbankverbindung nur auf eine Remote -Maschine verweisen, die die Datenbank ausführt, und wir könnten die Berechnung auf mehreren Computern starten Gleichzeitig erstellen Planung.

Warum Planung benötigt wird? Um in diesem Beispiel zu bleiben: Wenn wir die Datenbank nicht zuweisen Zeilenkennungen oder Zeitstempel der Datenbank, wäre unsere Anwendung viel größer, viel langsamer und viel mehr voller Fehler gewesen - einige von ihnen tauchen nur auf, wenn wir zwei Instanz von der betreiben. Anwendung im selben Moment.

Verwandte Linux -Tutorials:

  • Ubuntu 20.04 Postgresql Installation
  • Ubuntu 22.04 Postgresql Installation
  • So verhindern Sie die Überprüfung der Konnektivitätskonnektivität von NetworkManager
  • Dinge zu installieren auf Ubuntu 20.04
  • Wie man mit der Woocommerce -REST -API mit Python arbeitet
  • So überprüfen Sie die Akkulaufzeit bei Ubuntu
  • EEPROM CH341A -Programmierer - Lesen und schreiben Sie Daten, um auf…
  • Dinge zu installieren auf Ubuntu 22.04
  • Oracle Java Installation auf Ubuntu 20.04 fokale Fossa Linux
  • So installieren Sie Java unter Manjaro Linux