JavaRush /Java Blog /Random-TK /1-nji bölüm: SQL bilen tanyşlyk

1-nji bölüm: SQL bilen tanyşlyk

Toparda çap edildi

JDBC. Maglumat bazasyny birikdirmek we IntelliJ IDEA-da Java konsol programmasyny döretmek

Giriş

Bu makala , Java-daky maglumat bazalary bilen täsirleşmegiň esaslaryna we SQL-e girişine bagyşlanan gysga seriýany açýar . Köp programmalar maglumatlary gaýtadan işlemek we üýtgetmek we ony täzeläp durmak bilen meşgullanýar. Maglumat programma logikasynyň möhüm bölegi bolany üçin, köplenç onuň üçin aýratyn ammar bölünýär. Ondaky maglumatlar dogry işlenmegi we saklanylmagyny üpjün etmek üçin gurluşly we ýörite düzgünlere tabyn. Dataörite talap dili - SQL (Strukturirlenen talap dili) ulanylyp, maglumatlar elýeterlidir we üýtgedilýär.
Bölüm 1. SQL bilen tanyşlyk - 1
Maglumatlar bazasyny dolandyrmak ulgamy, dürli daşarky programmalaryň maglumatlar we goşmaça hyzmatlar (hasaba alyş, dikeldiş, ätiýaçlyk we ş.m.), şol sanda SQL arkaly özara täsirini üpjün edýän programma üpjünçiligi. .Agny, maglumatlar bilen işleýän daşarky programmalaryň arasynda programma üpjünçiligi gatlagy. Bu bölümde SQL-iň nämedigi, SQL serweriniň nämedigi baradaky soraglara jogap bereris we DBMS bilen täsirleşmek üçin ilkinji programma dörederis.

DBMS görnüşleri

Maglumatlary saklamagyň tertibine esaslanýan DBMS-iň birnäçe görnüşi bar:
  • Iýerarhik. Maglumatlar agaç gurluşynda gurnaldy. Mysal üçin, diskiň kökünden başlap, soňra dürli görnüşli faýllaryň şahalary we dürli höwürtge bukjalary bilen ösýän faýl ulgamy mysal bolup biler.
  • Tor. Iýerarhikanyň üýtgemegi, her düwüniň birden köp ene-atasy bolup biler.
  • Obýekte gönükdirilen. Maglumatlar OOP laýyklykda häsiýetleri we özara täsir ýörelgeleri bilen synplar / obýektler görnüşinde tertipleşdirilýär.
  • Gatnaşyk. DBMS görnüşiniň maglumatlary tablisalarda ýerleşdirilen. Tablisalar biri-biri bilen baglanyşyp biler, içindäki maglumatlar gurluşly.
Makalalaryň bu tapgyrynda, H2-ni mysal hökmünde ulanyp, baglanyşykdaky DBMS-lere (iň köp ýaýranlary) serederis we alyş-çalyş işine meňzeş bir zady emele getirýän noldan programma dörederis. Sorag: Näme üçin PostgreSQL, MySQL, MSSQL ýa-da Oracle? Jogap: Aýry-aýry programmalar toplumyny gurmak meselesi bilen ünsüňizi sowmazlyk üçin. Goşmaça konfigurasiýa, maglumat bazasyny döretmek, dürli OS-lerde, wersiýalarda işlemegiň kynçylyklary. H2 bilen işlemek üçin iň az hereket etmeli. Emma häzirki H2 JDBC-ni başga bir öndürijiden baglanyşyk DBMS-e üýtgetmäge hiç zat päsgel bermeýär (diňe serwer salgysynyň setiri we sürüjiniň synpynyň ady üýtgeýär).

SQL

Daşarky programmalar, maglumat dolandyryş dilinde Düzülen Talap Dilinde DBMS-den talaplar döredýär. SQL näme we adaty programmirleme dillerinden nähili tapawutlanýar? SQL-iň aýratynlyklaryndan biri deklaratiwlikdir. .Agny, SQL deklaratiw dil . Diýmek, buýruklar girizilende, ýagny SQL serwerine talaplar döredilende, haýsy görnüşde däl-de, nämäni almak isleýändigimizi düşündirýäris. Serwere haýyş ibermek bilen SELECT * FROM CUSTOMER(SQL-den rus diline takmynan terjime: “COSTUMER tablisasyndan saýlaň, saýlama tablisadaky ähli hatarlardan ybarat” ), ähli ulanyjylar üçin maglumat alarys. Serweriň gyzyklandyrýan maglumatlary nädip we nireden göçürip alýandygynyň ähmiýeti ýok. Esasy zat, haýyşy dogry düzmek.
  • SQL Serweri näme we ol nähili işleýär? DBMS bilen özara baglanyşyk müşderi-serwer prinsipinde ýüze çykýar. Käbir daşarky programma SQL dilinde operatorlar we buýruklar görnüşinde haýyş iberýär, DBMS ony işleýär we jogap iberýär. Ityönekeýlik üçin SQL Server = DBMS diýip kabul edeliň.
Bir marka awtoulag sürüp bilýän bolsaňyz, başgalary hiç hili kynçylyksyz sürüp bilersiňiz. Maşyn sürmegiň esaslary, ownuk jikme-jikliklerden başga hemme ýerde birmeňzeş. Dürli öndürijileriň SQL serwerleri üçin hem edil şonuň ýaly - olaryň hersiniň SQL wersiýasy bar, ýöne görkezilen standartlara laýyk gelýär (SQL92, SQL2003 ...). SQL92 çarçuwasynyň çäginde operatorlary we buýruklary ulanarys. Esasy SQL jümleleri aşakdaky toparlara bölünýär:
  • Maglumatlary kesgitlemek dili ( DDL ) - maglumat kesgitlemeleri. Maglumat bazasynyň gurluşyny we obýektlerini döretmek;
  • Maglumatlary dolandyrmak dili ( DML ) - maglumatlar bilen hakyky özara täsir: goýmak, aýyrmak, üýtgetmek we okamak;
  • Geleşiklere gözegçilik dili ( TCL ) - amallary dolandyrmak;
  • Maglumatlara gözegçilik dili ( DCL ) - maglumatlara we maglumatlar binýadynyň gurluşlaryna giriş hukuklaryny dolandyrmak.
Makalalaryň bir toparynda DML-ä aýratyn üns berip, ilkinji üç topara serederis.

JDBC

Geçen asyryň 80-nji ýyllarynda PC XT / AT görnüşindäki şahsy kompýuterler bazary basyp aldy. Bu esasan olaryň dizaýnynyň modullygy bilen baglanyşyklydy. Bu, ulanyjynyň kompýuteriniň bir ýa-da başga bir bölegini (prosessor, wideo karta, diskler we ş.m.) aňsatlyk bilen üýtgedip biljekdigini aňladýar. Bu ajaýyp emläk şu güne çenli saklanyp galypdyr: wideo kartany üýtgedýäris we sürüjini täzeleýäris (käwagt hatda awtomatiki usulda täzelenýär). Köplenç beýle manipulýasiýa bilen hiç hili erbet zat bolup geçmeýär we bar bolan programmalar täzelenen ulgam bilen täzeden gurulman işlemegini dowam etdirer. Bu, Java-da DBMS bilen işlemekde-de degişlidir. SQL serwerleri bilen işi standartlaşdyrmak üçin, onuň bilen özara täsir etmek bir nokat - JDBC (Java DataBase Connectivity) arkaly amala aşyrylyp bilner. DBMS bilen işlemek üçin java.sql paketiniň ýerine ýetirilişi . Popularhli meşhur SQL serwerleriniň öndürijileri olar üçin JDBC draýwerlerini goýberýärler. Aşakdaky diagramma serediň. Programma java.sql -den sapaklaryň mysallaryny ulanýar . Soňra maglumatlary almak / üýtgetmek üçin zerur buýruklary berýäris. Ondan soň, java.sql jdbc sürüjisiniň üsti bilen DBMS bilen aragatnaşyk saklaýar we gutaran netijäni bize gaýtaryp berýär. Bölüm 1. SQL bilen tanyşlyk - 2 Başga bir öndürijiden DBMS-e geçmek üçin JDBC-ni üýtgetmek we esasy sazlamalary ýerine ýetirmek köplenç ýeterlikdir. Programmanyň galan bölekleri üýtgemeýär.

Ilkinji maksatnama

Amaly bölüme geçeliň. JetBrains IntelliJ IDEA IDE ulanyp, Java taslamasyny döredeliň . Ultimate Edition-da SQL we maglumat bazalary - Data Grip bilen işlemek üçin ajaýyp guralyň bardygyny unutmaň . Şeýle-de bolsa, ulanyjylaryň köpüsi üçin tölenýär. Şonuň üçin bilim maksatlary üçin diňe köpçülige açyk IntelliJ IDEA Community Edition ulanyp bileris . Diýmek:
  1. IDE-i işe giriziň we täze taslama dörediň:
    Bölüm 1. SQL bilen tanyşlyk - 3

  2. Java taslamasyny saýlaň, SDK wersiýasyny görkeziň (mysal üçin JDK8, ýöne bu möhüm däl):
    Bölüm 1. SQL bilen tanyşlyk - 4

  3. Indiki ädimde görnüşi hökmünde konsol programmasyny saýlaň :
    Bölüm 1. SQL bilen tanyşlyk - 5

  4. Taslamanyň adyny , bukjasyny we diskdäki ýerleşişini görkezýäris (munuň üçin ýörite katalog döretdim):
    Bölüm 1. SQL bilen tanyşlyk - 6

  5. IDE-ni bir minut goýalyň we H2 DBMS bilen işlemek üçin zerur JDBC faýlyny www.h2database.com -dan göçürip alalyň (garaşsyz ZIP platformasyny göçürip alyň):
    Bölüm 1. SQL bilen tanyşlyk - 7

  6. Göçürilen faýlyň içine girýäris ( h2 \ bin ýolundaky banka faýly bilen gyzyklanýarys , soňundan gerek bolar, göçüriň):
    Bölüm 1. SQL bilen tanyşlyk - 8

  7. IDE-e gaýdyp gelýäris we taslamanyň düýbünde kataloglar döredýäris: DBMS maglumatlary bolan faýllaryň ýerleşýän db ; lib - ine JDBC JAR kitaphanasy:
    Bölüm 1. SQL bilen tanyşlyk - 9

  8. Banka faýlyny 6-njy ädimden lib katalogyna geçiriň we taslama hökmünde kitaphana hökmünde goşuň:
    1-nji bölüm: SQL bilen tanyşlyk - 10

  9. Java faýlyň adyny src / sql / demo bilen StockExchange.java diýip üýtgedeliň (ýatdan çykaran bolsaňyz, ýönekeý “alyş-çalyş” görelde alarys), mazmunyny üýtgediň we işlediň:
    Bölüm 1. SQL bilen tanyşlyk - 11
Indi DBMS-e birigip we aýryp bileris. Her ädim konsolda öz beýanyny tapdy. Ilki bilen DBMS-e birikeniňizde stockExchange.mv.db maglumat bazasy faýly döredilýär .

Kod derňewi

Hakyky kody:
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 !");
        }
    }
}

Yzygiderli blok:

  1. DB_Driver : Bu ýerde , mysal üçin, birikdirilen kitaphana basmak we häzirki taslamanyň lib katalogynda gurluşyny giňeltmek arkaly tapyp boljak sürüjiniň adyny kesgitledik .
  2. DB_URL : Maglumat bazamyzyň salgysy. Içege bilen bölünen maglumatlardan ybarat:
  3. Protokol = jdbc
  4. Satyjy (öndüriji / ady) DBMS = h2
  5. DBMS-iň ýerleşýän ýeri, biziň ýagdaýymyzda faýla barýan ýol (c: / JavaPrj / SQLDemo / db / stockExchange). Tor DBMS-leri üçin uzakdaky serwerleriň atlary ýa-da IP adresleri, TCP / UDP port belgileri we ş.m. goşmaça görkezilýär.

Roralňyşlyk bilen işlemek:

Kodumyzdaky jaň usullary, üns bermeli ýalňyşlaryňyzy yzyna gaýtaryp biler. Bu etapda olary diňe konsolda habar berýäris. DBMS bilen işleýän wagtyňyz ýalňyşlyklaryň köplenç SQLException bolandygyny unutmaň .

Işleýiş logikasy:

  1. Class.forName (DB_Driver) - degişli JDBC sürüjisiniň elýeterlidigine göz ýetirýäris (öňem göçürip aldyk).
  2. DriverManager.getConnection (DB_URL) - DBMS birikmesini guruň. Geçirilen adresi ulanyp, JDBC-iň özi DBMS-iň görnüşini we ýerleşişini kesgitlär we maglumatlar bazasy bilen aragatnaşyk saklamak üçin ulanyp boljak Birikdirmäni yzyna berer.
  3. connection.close () - DBMS-e birikmäni ýapyň we programma bilen işlemegi tamamlaň.
Tapgyryň indiki bölüminde DDL operatorlary we SQL maglumat görnüşleri bilen tanşarys, şeýle hem maglumatlar bazamyzyň başlangyç gurluşyny dörederis we tablisalar bilen doldurarys. Ikinji bölüm Üçünji bölüm
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION