Cara bertahan data ke postgresql di java

Cara bertahan data ke postgresql di java

Java mungkin adalah bahasa pemrograman yang paling banyak digunakan saat ini. Itu adalah ketahanan dan sifat platform-independen memungkinkan aplikasi berbasis Java untuk berjalan kebanyakan. Seperti halnya dengan aplikasi apa pun, kita perlu menyimpan data kita dengan cara yang dapat diandalkan - kebutuhan ini disebut database seumur hidup.

Dalam java database, koneksi diimplementasikan oleh JDBC (Java Database Connectivity API), yang memungkinkan programmer menangani berbagai jenis database dengan cara yang hampir sama, yang membuat hidup kita lebih mudah ketika kita perlu menyimpan atau membaca data dari database.

Dalam tutorial ini kami akan membuat contoh aplikasi Java yang akan dapat terhubung ke instance database PostgreSQL, dan menulis data ke dalamnya. Untuk memeriksa bahwa penyisipan data kami berhasil, kami juga akan menerapkan bacaan kembali dan mencetak tabel yang kami masukkan data.

Dalam tutorial ini Anda akan belajar:

  • Cara mengatur database untuk aplikasi
  • Cara mengimpor driver jdbc postgresql ke proyek Anda
  • Cara memasukkan data ke dalam database
  • Cara menjalankan kueri sederhana untuk membaca konten tabel basis data
  • Cara mencetak data yang diambil
Hasil menjalankan aplikasi.

Persyaratan dan konvensi perangkat lunak yang digunakan

Persyaratan Perangkat Lunak dan Konvensi Baris Perintah Linux
Kategori Persyaratan, konvensi atau versi perangkat lunak yang digunakan
Sistem Ubuntu 20.04
Perangkat lunak NetBeans IDE 8.2, PostgreSQL 10.12, JDK 1.8
Lainnya Akses istimewa ke sistem Linux Anda sebagai root atau melalui sudo memerintah.
Konvensi # - mensyaratkan perintah linux yang diberikan untuk dieksekusi dengan hak istimewa root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo memerintah
$ - mensyaratkan perintah Linux yang diberikan untuk dieksekusi sebagai pengguna biasa

Pengaturan



Untuk keperluan tutorial ini, kami hanya membutuhkan satu workstation (desktop atau laptop) untuk menginstal semua komponen yang diperlukan. Kami tidak akan mencakup menginstal JDK, NetBeans IDE, atau pemasangan database PostgreSQL di mesin lab. Kami berasumsi bahwa database dipanggil contoh sedang berjalan dan berjalan, dan kami dapat menghubungkan, membaca, dan menulis menggunakan otentikasi kata sandi, dengan kredensial berikut:

Nama belakang: Contoh Penyusunan
Kata sandi: ExamplePass

Ini adalah contoh pengaturan, gunakan kata sandi yang kuat dalam skenario dunia nyata! Basis data diatur untuk mendengarkan di LocalHost, yang akan dibutuhkan saat kami membangun JDBC URL koneksi.

Tujuan utama aplikasi kami adalah untuk menunjukkan cara menulis dan membaca dari database, jadi untuk informasi berharga kami sangat ingin bertahan, kami hanya akan memilih nomor acak antara 1 dan 1000, dan akan menyimpan informasi itu dengan yang unik ID perhitungan, dan waktu yang tepat data dicatat dalam database.

ID dan waktu perekaman akan disediakan oleh database, yang mari kita lakukan aplikasi kami hanya pada masalah nyata (memberikan nomor acak dalam kasus ini). Ini sengaja, dan kami akan membahas kemungkinan arsitektur ini di akhir tutorial ini.

Menyiapkan database untuk aplikasi

Kami memiliki layanan database yang sedang berjalan, dan database yang disebut contoh Kami memiliki hak untuk bekerja dengan kredensial yang disebutkan di atas. Untuk memiliki tempat di mana kami dapat menyimpan data kami yang berharga (acak), kami perlu membuat tabel, dan juga urutan yang akan memberikan pengidentifikasi unik dengan cara yang nyaman. Pertimbangkan skrip SQL berikut:

Buat Urutan HasilTID_SEQ mulai dengan 0 kenaikan dengan 1 tidak ada maxvalue minvalue 0 cache 1; ubah urutan hasil resultid_seq ke contoh; Buat tabel calc_results (residor numerik kunci primer default nextval ('resultid_seq' :: regclass), result_of_calculation numerik not null, record_date timestamp default now ()); ubah tabel calc_results pemilik ke contoh; 
Menyalin

Instruksi ini harus berbicara sendiri. Kami membuat urutan, mengatur pemiliknya Contoh Penyusunan, Buat tabel yang disebut calc_results (Berdiri untuk "Hasil Perhitungan"), setel residasi untuk diisi secara otomatis dengan nilai berikutnya dari urutan kami pada setiap sisipan, dan tentukan result_of_calculation Dan Record_date kolom yang akan menyimpan data kami. Akhirnya, pemilik meja juga diatur ke Contoh Penyusunan.

Untuk membuat objek basis data ini, kami beralih ke postgres pengguna:

$ sudo su - postgres

Dan jalankan skrip (disimpan dalam file teks yang dipanggil Table_for_java.SQL) melawan contoh Database:

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

Dengan ini, database kami sudah siap.

Mengimpor driver JDBC PostgreSQL ke proyek



Untuk membangun aplikasi, kami akan menggunakan NetBeans IDE 8.2. Beberapa langkah pertama adalah pekerjaan tangan. Kami memilih menu file, membuat proyek baru. Kami akan meninggalkan default di halaman Wizard berikutnya, dengan kategori "Java" dan Project pada "Aplikasi Java". Kami akan menekan berikutnya. Kami memberikan nama aplikasi (dan secara opsional mendefinisikan lokasi non-default). Dalam kasus kami itu akan dipanggil persisttopostgres. Ini akan membuat IDE membuat proyek java dasar untuk kami.

Pada panel proyek, kami mengklik kanan "Perpustakaan" dan pilih "Tambahkan Perpustakaan ...". Jendela baru akan muncul, di mana kami mencari dan memilih driver JDBC PostgreSQL, dan menambahkannya sebagai perpustakaan.

Menambahkan driver JDBC PostgreSQL ke proyek.

Memahami Kode Sumber

Kami sekarang menambahkan kode sumber berikut ke kelas utama aplikasi kami, Persisttopostgres:

paket persisttopostgres; Impor Java.SQL.Koneksi; Impor Java.SQL.DriverManager; Impor Java.SQL.Hasil; Impor Java.SQL.SQlexception; Impor Java.SQL.Penyataan; Impor Java.util.bersamaan.Threadlocalrandom; Public Class Persisttopostgres public static void main (string [] args) int result = threadlocalrandom.saat ini().nextint (1, 1000 + 1); Sistem.keluar.println ("Hasil dari perhitungan yang sulit diselesaikan adalah:" + hasil); Sistem.keluar.println ("----- PostgreSQL JDBC Connection Testing ------"); coba kelas.FORNAME ("org.PostgreSQL.Driver "); catch (ClassNotFoundException cnfe) System.keluar.println ("No PostgreSQL JDBC Driver di jalur perpustakaan!"); cnfe.printStackTrace (); kembali;  Sistem.keluar.println ("PostgreSQL JDBC Driver terdaftar!"); Koneksi conn = null; coba conn = driverManager.getConnection ("JDBC: PostgreSQL: // LocalHost: 5432/exampledb", "exampleUser", "examplePass");  catch (sqlexception sqle) System.keluar.println ("Koneksi gagal! Periksa konsol output "); sqle.printStackTrace (); kembali;  if (conn != null) sistem.keluar.println ("koneksi database didirikan"); // Building Query Coba pernyataan st = conn.createStatement (); st.ExecuteUpdate ("INSERT INTO CALC_RESULTS (result_of_calculation) nilai (" + result + ")"); Hasil rs = st.executeQuery ("SELECT Resid, result_of_calculation, Record_Date dari calc_results"); Sistem.keluar.println ("Hasil yang direkam dalam exampledB berikut: \ n ----------------------- \ n"); sementara (Rs.next ()) System.keluar.println (Rs.getstring ("resid") + "\ t" + rs.getString ("result_of_calculation") + "\ t" + rs.getString ("Record_Date"));  // Bersihkan di EXIT ST.menutup(); Conn.menutup();  catch (sqlexception sqle2) System.keluar.println ("Kesalahan pada kueri"); SQLE2.printStackTrace ();  else System.keluar.println ("Gagal membuat koneksi!"); 
Menyalin

  • Pada baris 12 kami menghitung nomor acak, dan menyimpannya di hasil variabel. Angka ini mewakili hasil perhitungan berat itu
    kita perlu disimpan di database.
  • Di baris 15 kami mencoba mendaftarkan driver JDBC PostgreSQL. Ini akan menghasilkan kesalahan jika aplikasi tidak menemukan driver saat runtime.
  • Pada baris 26 kami membangun string koneksi JDBC menggunakan nama host yang dijalankan database di (localhost), port yang mendengarkan database pada (5432, port default untuk postgresql), nama basis data (contoh), dan kredensial yang disebutkan di awal.
  • Di baris 37 kami mengeksekusi Masukkan ke dalam Pernyataan SQL yang menyisipkan nilai hasil variabel ke dalam result_of_calculation kolom dari calc_results meja. Kami hanya menentukan nilai kolom tunggal ini, jadi default berlaku: residasi diambil dari urutan kami
    set, dan Record_date default ke Sekarang(), yang merupakan waktu basis data pada saat transaksi.
  • Pada baris 38 kami membangun kueri yang akan mengembalikan semua data yang terkandung dalam tabel, termasuk sisipan kami di langkah sebelumnya.
  • Dari baris 39 kami menyajikan data yang diambil dengan mencetaknya dengan cara seperti meja, membebaskan sumber daya, dan keluar.

Menjalankan aplikasi

Kami sekarang dapat membersihkan, membangun dan menjalankan persisttopostgres aplikasi, dari IDE itu sendiri, atau dari baris perintah. Untuk menjalankan dari IDE, kami dapat menggunakan tombol "Jalankan Proyek" di atas. Untuk menjalankannya dari baris perintah, kita perlu menavigasi ke Dist direktori proyek, dan memohon JVM dengan STOPLES paket sebagai argumen:

$ java -jar persisttopostgres.JAR Hasil dari perhitungan yang sulit diselesaikan adalah: 173 ----- PostgreSQL JDBC Connection Testing ------ Koneksi database Hasil yang ditetapkan yang dicatat dalam ExampledB berikut: ------------- ---------- 0 145 2020-05-31 17:40:30.974246

Baris perintah berjalan akan memberikan output yang sama dengan konsol IDE, tetapi yang lebih penting di sini adalah bahwa setiap menjalankan (baik itu dari IDE atau baris perintah) akan memasukkan baris lain ke dalam tabel database kami dengan nomor acak yang diberikan yang dihitung pada masing -masing berlari.

Inilah sebabnya mengapa kita juga akan melihat semakin banyak catatan dalam output aplikasi: masing -masing menjalankan menumbuhkan tabel dengan satu baris. Setelah beberapa berjalan, kita akan melihat daftar panjang baris hasil di tabel.

Output database menunjukkan hasil dari setiap eksekusi aplikasi.

Kesimpulan

Meskipun aplikasi sederhana ini hampir tidak memiliki penggunaan dunia nyata, sangat cocok untuk menunjukkan beberapa aspek penting yang nyata. Dalam tutorial ini kami mengatakan kami melakukan perhitungan penting dengan aplikasi, dan memasukkan nomor acak setiap kali, karena tujuan tutorial ini adalah untuk menunjukkan bagaimana bertahan data. Tujuan ini kami selesaikan: dengan setiap menjalankan, aplikasi keluar, dan hasil perhitungan internal akan hilang, tetapi database mempertahankan data.

Kami mengeksekusi aplikasi dari satu workstation, tetapi jika kami benar -benar perlu menyelesaikan beberapa perhitungan yang rumit, kami hanya perlu mengubah URL koneksi database untuk menunjuk ke mesin jarak jauh yang menjalankan database, dan kami dapat memulai perhitungan di beberapa komputer Pada saat yang sama menciptakan ratusan atau ribuan contoh aplikasi ini, mungkin memecahkan potongan -potongan kecil dari teka -teki yang lebih besar, dan menyimpan hasilnya dengan cara yang terus -menerus, memungkinkan kami untuk mengukur kekuatan komputasi kami dengan beberapa baris kode, dan sedikit perencanaan.

Mengapa Perencanaan Dibutuhkan? Untuk tetap dengan contoh ini: Jika kita tidak akan meninggalkan penugasan baris atau pencampuran waktu ke database, aplikasi kita akan jauh lebih besar, jauh lebih lambat, dan jauh lebih penuh dengan bug - beberapa di antaranya hanya muncul ketika kita menjalankan dua contoh dari Aplikasi pada saat yang sama.

Tutorial Linux Terkait:

  • Ubuntu 20.04 Instalasi PostgreSQL
  • Ubuntu 22.04 Instalasi PostgreSQL
  • Cara mencegah pemeriksaan konektivitas networkmanager
  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Bagaimana bekerja dengan WooCommerce Rest API dengan Python
  • Cara memeriksa masa pakai baterai di ubuntu
  • EEPROM CH341A Programmer - Baca dan tulis data untuk chip di…
  • Hal -hal yang harus diinstal pada Ubuntu 22.04
  • Instalasi Oracle Java di Ubuntu 20.04 FOSSA FOSSA Linux
  • Cara menginstal java di manjaro linux