Java DataBase Connectivity (англ. Java DataBase Connectivity — з'єднання з базами даних на Java), скорочено JDBC) — прикладний програмний інтерфейс Java, який визначає методи, з допомогою яких програмне забезпечення на Java здійснює доступ до бази даних. JDBC — це платформо-незалежний промисловий стандарт взаємодії Java-застосунків з різноманітними СУБД, реалізований у вигляді пакета java.sql
, що входить до складу Java SE.
В основі JDBC лежить концепція так званих драйверів, що дозволяють отримувати з'єднання з базою даних по спеціально описаному URL. Драйвери можуть завантажуватись динамічно (під час роботи програми). Завантажившись, драйвер сам реєструє себе й викликається автоматично, коли програма вимагає URL, що містить протокол, за який драйвер «відповідає».
Інтерфейси
JDBC API містить два основні типи інтерфейсів: перший — для розробників застосунків і другий (нижчого рівня) — для розробників драйверів.
З'єднання з базою даних описується класом, що реалізує інтерфейс java.sql.Connection
.
Маючи з'єднання з базою даних, можна створювати об'єкти типу Statement, використовувані для здійснення запитів до бази даних на мові SQL.
Існують такі види типів Statement, що відрізняються своїм призначенням:
java.sql.Statement
— Statement загального призначення;java.sql.PreparedStatement
— Statement, що служить для здійснення запитів, котрі містять підставні параметри (позначаються символом '?' у тілі запиту);java.sql.CallableStatement
— Statement, призначений для виклику збережених процедур.
Класjava.sql.ResultSet
дозволяє легко обробляти результати запитів.
Переваги
Перевагами JDBC вважаються:
- Легкість розробки: розробник може не знати специфіки бази даних, з якою працює;
- Код не змінюється, якщо компанія переходить на іншу базу даних;
- Не треба встановлювати громіздку клієнтську програму;
- До будь-якої бази можна під'єднатись через легко описуваний URL.
Приклади
Приклад коду
JDBC для MySQL |
---|
Цей приклад використовує вільний драйвер JDBC для MySQL, який легко встановлюється в більшості дистрибутивів Linux через стандартні репозиторії. |
package javaapplication1; import java.sql.*; public class Main { public static void main(String[] args) throws SQLException { /** * цей рядок вказує драйвер DB. * розкоментуйте, якщо прописуєте драйвер вручну */ //Class.forName("com.mysql.jdbc.Driver").newInstance(); Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/db_name", "user", "password"); if (conn==null) { System.out.println("Немає з'єднання з БД!"); System.exit(0); } Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM users"); while(rs.next()) { System.out.println(rs.getRow() + ". " + rs.getString("firstname") + "\t" + rs.getString("lastname")); } // if(rs!=null)rs.close(); /** * stmt.close(); * При закритті Statement автоматично закриваються * всі пов'язані з ним відкриті об'єкти ResultSet */ // if(stmt!=null)stmt.close(); stmt.close(); } } |
JDBC для Microsoft SQL Server |
---|
Цей приклад використовує , вільний драйвер JDBC для Microsoft SQL Server і Sybase ASE SQL-Server. Підключитись до цієї та інших СУБД можна і вбудованими засобами за допомогою драйвера JDBC для ODBC, але ціною сповільнення роботи. |
/** * цей рядок вказує альтернативний драйвер DB. Наприклад, hsql. */ // Class.forName("org.hsqldb.jdbcDriver"); Connection conn = DriverManager.getConnection( "jdbc:jtds:sqlserver://SERVER/Northwind;instance=INST;domain=Sample_NTLM_Domain", "user", "password"); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT LastName + ' ' + FirstName AS FullName, Address FROM Employees"); while(rs.next()) { System.out.println(rs.getString("FullName") + "\t" + rs.getString("Address")); } rs.close(); stmt.close(); |
Див. також
Посилання
- Офіційна сторінка JDBC [ 23 жовтня 2010 у Wayback Machine.] (англ.)
- Підручник JDBC [ 26 серпня 2009 у Wayback Machine.] (англ.)
- (рос.)
- Використання JDBC в Java [ 8 серпня 2010 у Wayback Machine.] (рос.)
- Використовуємо Java Database Connectivity [ 2 квітня 2015 у Wayback Machine.]
Ця стаття потребує додаткових для поліпшення її . (січень 2016) |
Це незавершена стаття про бази даних. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Java DataBase Connectivity angl Java DataBase Connectivity z yednannya z bazami danih na Java skorocheno JDBC prikladnij programnij interfejs Java yakij viznachaye metodi z dopomogoyu yakih programne zabezpechennya na Java zdijsnyuye dostup do bazi danih JDBC ce platformo nezalezhnij promislovij standart vzayemodiyi Java zastosunkiv z riznomanitnimi SUBD realizovanij u viglyadi paketa java sql sho vhodit do skladu Java SE V osnovi JDBC lezhit koncepciya tak zvanih drajveriv sho dozvolyayut otrimuvati z yednannya z bazoyu danih po specialno opisanomu URL Drajveri mozhut zavantazhuvatis dinamichno pid chas roboti programi Zavantazhivshis drajver sam reyestruye sebe j viklikayetsya avtomatichno koli programa vimagaye URL sho mistit protokol za yakij drajver vidpovidaye InterfejsiJDBC API mistit dva osnovni tipi interfejsiv pershij dlya rozrobnikiv zastosunkiv i drugij nizhchogo rivnya dlya rozrobnikiv drajveriv Z yednannya z bazoyu danih opisuyetsya klasom sho realizuye interfejs java sql Connection Mayuchi z yednannya z bazoyu danih mozhna stvoryuvati ob yekti tipu Statement vikoristovuvani dlya zdijsnennya zapitiv do bazi danih na movi SQL Isnuyut taki vidi tipiv Statement sho vidriznyayutsya svoyim priznachennyam java sql Statement Statement zagalnogo priznachennya java sql PreparedStatement Statement sho sluzhit dlya zdijsnennya zapitiv kotri mistyat pidstavni parametri poznachayutsya simvolom u tili zapitu java sql CallableStatement Statement priznachenij dlya vikliku zberezhenih procedur Klasjava sql ResultSet dozvolyaye legko obroblyati rezultati zapitiv PerevagiPerevagami JDBC vvazhayutsya Legkist rozrobki rozrobnik mozhe ne znati specifiki bazi danih z yakoyu pracyuye Kod ne zminyuyetsya yaksho kompaniya perehodit na inshu bazu danih Ne treba vstanovlyuvati gromizdku kliyentsku programu Do bud yakoyi bazi mozhna pid yednatis cherez legko opisuvanij URL PrikladiPriklad kodu JDBC dlya MySQL Cej priklad vikoristovuye vilnij drajver JDBC dlya MySQL yakij legko vstanovlyuyetsya v bilshosti distributiviv Linux cherez standartni repozitoriyi package javaapplication1 import java sql public class Main public static void main String args throws SQLException cej ryadok vkazuye drajver DB rozkomentujte yaksho propisuyete drajver vruchnu Class forName com mysql jdbc Driver newInstance Connection conn DriverManager getConnection jdbc mysql localhost 3306 db name user password if conn null System out println Nemaye z yednannya z BD System exit 0 Statement stmt conn createStatement ResultSet rs stmt executeQuery SELECT FROM users while rs next System out println rs getRow rs getString firstname t rs getString lastname if rs null rs close stmt close Pri zakritti Statement avtomatichno zakrivayutsya vsi pov yazani z nim vidkriti ob yekti ResultSet if stmt null stmt close stmt close JDBC dlya Microsoft SQL Server Cej priklad vikoristovuye vilnij drajver JDBC dlya Microsoft SQL Server i Sybase ASE SQL Server Pidklyuchitis do ciyeyi ta inshih SUBD mozhna i vbudovanimi zasobami za dopomogoyu drajvera JDBC dlya ODBC ale cinoyu spovilnennya roboti cej ryadok vkazuye alternativnij drajver DB Napriklad hsql Class forName org hsqldb jdbcDriver Connection conn DriverManager getConnection jdbc jtds sqlserver SERVER Northwind instance INST domain Sample NTLM Domain user password Statement stmt conn createStatement ResultSet rs stmt executeQuery SELECT LastName FirstName AS FullName Address FROM Employees while rs next System out println rs getString FullName t rs getString Address rs close stmt close Div takozhJava Java Enterprise Edition SQL ODBC SQLJPosilannyaOficijna storinka JDBC 23 zhovtnya 2010 u Wayback Machine angl Pidruchnik JDBC 26 serpnya 2009 u Wayback Machine angl ros Vikoristannya JDBC v Java 8 serpnya 2010 u Wayback Machine ros Vikoristovuyemo Java Database Connectivity 2 kvitnya 2015 u Wayback Machine Cya stattya potrebuye dodatkovih posilan na dzherela dlya polipshennya yiyi perevirnosti Bud laska dopomozhit udoskonaliti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Zvernitsya na storinku obgovorennya za poyasnennyami ta dopomozhit vipraviti nedoliki Material bez dzherel mozhe buti piddano sumnivu ta vilucheno sichen 2016 Ce nezavershena stattya pro bazi danih Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi