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.
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.
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:
- IDE-i işe giriziň we täze taslama dörediň:
- Java taslamasyny saýlaň, SDK wersiýasyny görkeziň (mysal üçin JDK8, ýöne bu möhüm däl):
- Indiki ädimde görnüşi hökmünde konsol programmasyny saýlaň :
- Taslamanyň adyny , bukjasyny we diskdäki ýerleşişini görkezýäris (munuň üçin ýörite katalog döretdim):
- 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ň):
- Göçürilen faýlyň içine girýäris ( h2 \ bin ýolundaky banka faýly bilen gyzyklanýarys , soňundan gerek bolar, göçüriň):
- 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:
- Banka faýlyny 6-njy ädimden lib katalogyna geçiriň we taslama hökmünde kitaphana hökmünde goşuň:
- 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ň:
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);
Connection connection = DriverManager.getConnection(DB_URL);
System.out.println("Соединение с СУБД выполнено.");
connection.close();
System.out.println("Отключение от СУБД выполнено.");
} catch (ClassNotFoundException e) {
e.printStackTrace();
System.out.println("JDBC драйвер для СУБД не найден!");
} catch (SQLException e) {
e.printStackTrace();
System.out.println("Ошибка SQL !");
}
}
}
Yzygiderli blok:
- 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 .
- DB_URL : Maglumat bazamyzyň salgysy. Içege bilen bölünen maglumatlardan ybarat:
- Protokol = jdbc
- Satyjy (öndüriji / ady) DBMS = h2
- 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:
- Class.forName (DB_Driver) - degişli JDBC sürüjisiniň elýeterlidigine göz ýetirýäris (öňem göçürip aldyk).
- 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.
- 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
GO TO FULL VERSION