JavaRush /Blog Jawa /Random-JV /Part 1: Pambuka kanggo SQL

Part 1: Pambuka kanggo SQL

Diterbitake ing grup

JDBC. Nyambungake database lan nggawe aplikasi console Java ing IntelliJ IDEA

Pambuka

Artikel iki mbukak seri cendhak sing dikhususake kanggo dhasar sesambungan karo basis data ing Jawa lan pengantar SQL . Akeh program sing sibuk ngolah lan ngowahi informasi lan tetep anyar. Wiwit data minangka bagéyan penting banget saka logika program, panyimpenan kapisah asring diparengake kanggo iku. Informasi kasebut disusun lan tundhuk karo aturan khusus kanggo njamin pangolahan lan panyimpenan sing bener. Data diakses lan diowahi nggunakake basa pitakon khusus - SQL (Basa Kueri Terstruktur).
Part 1. Pambuka kanggo SQL - 1
Sistem manajemen basis data minangka piranti lunak sing njamin interaksi macem-macem program eksternal karo data lan layanan tambahan (logging, pemulihan, serep, lan sapiturute), kalebu liwat SQL. Yaiku, lapisan piranti lunak ing antarane data lan program eksternal sing bisa digunakake. Ing bagean iki, kita bakal mangsuli pitakon babagan apa SQL, apa iku server SQL, lan nggawe program pisanan kanggo sesambungan karo DBMS.

Jinis DBMS

Ana sawetara jinis DBMS adhedhasar cara ngatur panyimpenan data:
  • Hierarkis. Data kasebut disusun ing struktur wit. Conto yaiku sistem file sing diwiwiti saka oyod disk lan banjur tuwuh kanthi cabang-cabang file saka macem-macem jinis lan folder kanthi tingkat nesting sing beda-beda.
  • Jaringan. A modifikasi hirarkis, saben simpul bisa duwe luwih saka siji wong tuwa.
  • Obyek-oriented. Data disusun kanthi wujud kelas/obyek kanthi atribut lan prinsip interaksi miturut OOP.
  • Relasional. Data saka jinis DBMS iki diatur ing tabel. Tabel bisa disambung karo saben liyane, informasi kasebut disusun.
Ing seri artikel iki, kita bakal ndeleng DBMS relasional (minangka sing paling umum) nggunakake H2 minangka conto lan nggawe aplikasi saka awal sing niru bab sing padha karo cara kerja ijol-ijolan. Pitakonan: Napa ora PostgreSQL, MySQL, MSSQL utawa Oracle? Wangsulan: Bab ingkang utama kanggo ora kanggo disambi dening masalah nginstal pesawat kapisah saka program. Konfigurasi luwih, nggawe database, intricacies digunakake ing OS beda, versi. Kanggo nggarap H2, sampeyan kudu nindakake tindakan minimal. Nanging ora ana sing ngalangi sampeyan ngganti H2 JDBC saiki menyang DBMS hubungan saka pabrikan liyane (mung baris alamat server lan jeneng kelas driver diganti).

SQL

Program eksternal ngasilake pitakon menyang DBMS ing basa manajemen data Structured Query Language. Apa SQL lan kepiye bedane karo basa pamrograman konvensional? Salah sawijining fitur SQL yaiku deklaratif. Yaiku, SQL minangka basa deklaratif . Iki tegese nalika ngetik printah, yaiku, nggawe pitakon menyang server SQL, kita njlèntrèhaké apa sing dikarepake, lan ora kanthi cara apa. Kanthi ngirim panjalukan menyang server SELECT * FROM CUSTOMER(terjemahan kira-kira saka SQL menyang Rusian: "nggawe pilihan saka tabel COSTUMER, pilihan kasebut kalebu kabeh baris ing tabel" ), kita bakal nampa data kanggo kabeh pangguna. Ora ketompo carane lan saka ngendi server ngundhuh lan ngasilake data sing kita kasengsem. Sing utama yaiku ngrumusake panyuwunan kanthi bener.
  • Apa SQL Server lan kepiye cara kerjane? Interaksi karo DBMS dumadi ing prinsip klien-server. Sawetara program eksternal ngirim panjalukan ing wangun operator lan printah ing basa SQL, DBMS ngolah lan ngirim respon. Kanggo gamblang, ayo kang nganggep yen SQL Server = DBMS.
Yen sampeyan bisa nyopir siji merek mobil, sampeyan bakal bisa nyopir liyane tanpa masalah. Dasar nyopir padha nang endi wae, kajaba rincian cilik. Padha bener kanggo server SQL saka manufaktur beda - saben wong duwe versi SQL dhewe, nanging meets standar kasebut (SQL92, SQL2003...). Kita bakal nggunakake operator lan printah ing framework SQL92. Pernyataan SQL dhasar dipérang dadi klompok ing ngisor iki:
  • Data Definition Language ( DDL ) - definisi data. Nggawe struktur database lan obyek;
  • Basa Manipulasi Data ( DML ) - interaksi nyata karo data: sisipan, pambusakan, modifikasi lan maca;
  • Basa Kontrol Transaksi ( TCL ) - manajemen transaksi;
  • Data Control Language ( DCL ) – manajemen hak akses menyang data lan struktur database.
Ing seri artikel kita bakal katon ing telung klompok pisanan, mbayar manungsa waé khusus kanggo DML.

JDBC

Ing 80s abad pungkasan, komputer pribadi saka jinis PC XT / AT nelukake pasar. Iki umume amarga modularitas desaine. Iki tegese pangguna bisa gampang ngganti siji utawa komponen liyane saka komputer (prosesor, kertu video, disk, etc.). Properti sing apik iki wis dilestarekake nganti saiki: kita ngganti kertu video lan nganyari driver (kadhangkala malah nganyari kanthi otomatis). Paling asring, ora ana sing ala karo manipulasi kasebut, lan program sing wis ana bakal terus bisa digunakake karo sistem sing dianyari tanpa nginstal maneh. Padha ditrapake kanggo nggarap Jawa nganggo DBMS. Kanggo nggawe standarisasi karo server SQL, interaksi karo bisa ditindakake liwat siji titik - JDBC (Java DataBase Connectivity). Iku implementasine saka paket java.sql kanggo nggarap DBMS. Produsen kabeh server SQL populer ngeculake driver JDBC kanggo dheweke. Coba diagram ing ngisor iki. Aplikasi nggunakake conto kelas saka java.sql . Kita banjur pass printah perlu kanggo njupuk / ngowahi data. Sabanjure, java.sql sesambungan karo DBMS liwat driver jdbc lan ngasilake asil rampung kanggo kita. Part 1. Pambuka kanggo SQL - 2 Kanggo ngalih menyang DBMS saka pabrikan liyane, cukup asring ngganti JDBC lan nindakake setelan dhasar. Sisa bagean saka program ora diganti.

Program pisanan

Ayo pindhah menyang bagean praktis. Ayo nggawe proyek Java nggunakake JetBrains IntelliJ IDEA IDE . Elinga yen Ultimate Edition ngemot alat sing apik kanggo nggarap SQL lan database - Data Grip . Nanging, iku mbayar kanggo paling kedhaftar. Dadi kanggo tujuan pendhidhikan, kita mung bisa nggunakake IntelliJ IDEA Community Edition sing kasedhiya kanggo umum . Dadi:
  1. Bukak IDE lan gawe proyek anyar:
    Part 1. Pambuka SQL - 3

  2. Pilih proyek Java, tandhani versi SDK (ing conto JDK8, nanging iki ora kritis):
    Part 1. Pambuka kanggo SQL - 4

  3. Ing langkah sabanjure, pilih aplikasi konsol minangka jinis :
    Part 1. Pambuka kanggo SQL - 5

  4. Kita nuduhake jeneng proyek , paket lan lokasi ing disk (Aku nggawe direktori kapisah khusus kanggo iki):
    Part 1. Pambuka kanggo SQL - 6

  5. Ayo sijine IDE kanggo sawetara menit lan download saka www.h2database.com file JDBC sing dibutuhake kanggo nggarap H2 DBMS (download ZIP independen platform):
    Part 1. Pambuka kanggo SQL - 7

  6. Kita mlebu ing file sing diundhuh (kita kasengsem ing file jar ing dalan h2\bin , sing bakal dibutuhake mengko, nyalin):
    Part 1. Pambuka kanggo SQL - 8

  7. Kita bali menyang IDE lan nggawe direktori ing oyod proyek: db , ing ngendi file karo data DBMS bakal ditemokake; lib - iki perpustakaan JDBC JAR:
    Part 1. Pambuka kanggo SQL - 9

  8. Pindhah file jar saka langkah 6 menyang direktori lib lan tambahake menyang proyek minangka perpustakaan:
    Bagean 1: Pambuka kanggo SQL - 10

  9. Ayo ganti jeneng file java dadi src/sql/demo dadi StockExchange.java (yen sampeyan kelalen, kita bakal niru "ijol-ijolan" sing prasaja), ganti isi lan mbukak:
    Part 1: Pambuka kanggo SQL - 11
Saiki kita bisa nyambung lan medhot saka DBMS. Saben langkah dibayangke ing console. Nalika sapisanan sampeyan nyambung menyang DBMS, file database stockExchange.mv.db digawe .

Parsing kode

Kode nyata:
package sql.demo;

import java.sql.*;

public class StockExchangeDB {
    // Блок объявления констант
    public static final String DB_URL = "jdbc:h2:/c:/JavaPrj/SQLDemo/db/stockExchange";
    public static final String DB_Driver = "org.h2.Driver";

    public static void main(String[] args) {
        try {
            Class.forName(DB_Driver); //Проверяем наличие JDBC драйвера для работы с БД
            Connection connection = DriverManager.getConnection(DB_URL);//соединениесБД
            System.out.println("Соединение с СУБД выполнено.");
            connection.close();       // отключение от БД
            System.out.println("Отключение от СУБД выполнено.");
        } catch (ClassNotFoundException e) {
            e.printStackTrace(); // обработка ошибки  Class.forName
            System.out.println("JDBC драйвер для СУБД не найден!");
        } catch (SQLException e) {
            e.printStackTrace(); // обработка ошибок  DriverManager.getConnection
            System.out.println("Ошибка SQL !");
        }
    }
}

Blok konstan:

  1. DB_Driver : Ing kene kita nemtokake jeneng driver, sing bisa ditemokake, contone, kanthi ngeklik perpustakaan sing disambungake lan ngembangake strukture ing direktori lib proyek saiki.
  2. DB_URL : Alamat database kita. Dumadi saka data sing dipisahake karo titik loro:
  3. Protokol = jdbc
  4. Vendor (produsen/jeneng) DBMS=h2
  5. Lokasi DBMS, ing kasus kita path menyang file (c:/JavaPrj/SQLDemo/db/stockExchange). Kanggo DBMS jaringan, jeneng utawa alamat IP server remot, nomer port TCP/UDP, lan liya-liyane dituduhake ing kene.

Pangolahan kesalahan:

Cara nelpon ing kode kita bisa ngasilake kesalahan sing kudu digatekake. Ing tataran iki kita mung laporan ing console. Elinga yen kesalahan nalika nggarap DBMS paling asring SQLException .

Logika operasi:

  1. Class.forName (DB_Driver) - kita priksa manawa driver JDBC sing cocog kasedhiya (sing wis diundhuh lan diinstal sadurunge).
  2. DriverManager.getConnection (DB_URL) – nggawe sambungan DBMS. Nggunakake alamat sing dilewati, JDBC dhewe bakal nemtokake jinis lan lokasi DBMS kita lan ngasilake Sambungan, sing bisa digunakake kanggo komunikasi karo database.
  3. connection.close () - nutup sambungan menyang DBMS lan rampung nggarap program.
Ing bagean sabanjure seri, kita bakal kenalan karo operator DDL lan jinis data SQL, lan uga nggawe struktur awal database kita lan isi karo tabel. Bagean kapindho Bagean katelu
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION