Mavzu: Java Database Connectivity Reja


Download 61.15 Kb.
Sana06.06.2020
Hajmi61.15 Kb.
#115436
Bog'liq
Собиров Ш 410 17 3 курс



Mavzu:Java Database Connectivity

Reja:

1.Kirish


2.Asosiy qism

3.Java Database Connectivity JDBC

- Arxitektura,Xususiyatlari,Misollar

4.Xulosa


5.Adabiyotlar

Kirish

JDBC rivojlanish tarixi

JDBC loyihasi 1996 yil yanvar oyida boshlangan va spetsifikatsiya 1996 yil iyun oyida JDBC chiqarilgandan keyin keng qabul qilinishini ta'minlash uchun sanoat ma'lumotlar bazasi sotuvchilarini jalb qilish uchun muzlatilgan. JDBC ANSI SQL-92 tayanch ustunidan juda qattiq tortadi. Bu JDBC drayveri har bir SQL-92 funktsiyasini bajarishi kerakligini anglatmaydi, u butun bir qismni bajarishi mumkin. Endi chalkash joy keldi; JDBC SQL-92-dan tortib olganda, u X / Open SQL Call Level Interface (CLI) ga asoslangan. Agar bu osonroq bo'lsa, siz CLI-ni SQL o'rash deb o'ylashingiz mumkin. Shuni ta'kidlash kerakki, Microsoft-ning ODBC-si X / Open SQL CLI-ga asoslangan.

JDBC sinflari java.sql va javax.sql paketlarida mavjud.

3.1 versiyasidan boshlab, JDBC Java Community Process asosida ishlab chiqilgan. JSR 54 JDBC 3.0 (J2SE 1.4 tarkibiga kiritilgan), JSR 114 JDBC Rowset qo'shimchalarini belgilaydi va JSR 221 JDBC 4.0 ning spetsifikatsiyasi (Java SE 6 ichiga kiritilgan).

JDBC 4.1, JSR 221 [] ning 1-versiyasi bilan ta'minlangan va Java SE 7-ga kiritilgan. [4]

JDBC 4.2, JSR 221 [] ning 2-versiyasi bilan ta'minlangan va Java SE 8-ga kiritilgan. [6]

Eng so'nggi versiya JDBC 4.3, JSR 221 [7] ning 3-versiyasi bilan ta'minlangan va Java SE 9-ga kiritilgan.

Asosiy qism

JDBCga kirish

 

Java ma'lumotlar bazasi ulanishi (JDBC) - bu Java appletlari / ilovalari va keng ko'lamli SQL ma'lumotlar bazalari o'rtasidagi ma'lumotlar bazasidan mustaqil ulanish uchun sanoat standartidir. "Bir marta yozing, istalgan joyga ishga tushing" ning barcha afzalliklari JDBC-ga teng ravishda qo'llaniladi. JDBC API defektida ma'lumotlar bazasi ulanishlari, SQL ko'rsatmalari, natijalar to'plamlari, ma'lumotlar bazasi meta-ma'lumotlari va boshqalarni ifodalovchi Java sinflari mavjud.

Bu Java dasturchisiga uchta narsani bajarishga imkon beradi:

Ma'lumotlar bazasiga ulanishni o'rnatish

SQL ko'rsatmalarini berish

Natijalarni qayta ishlang




JDBC API turli xil ma'lumotlar bazalariga ulangan bir nechta drayverlarni qo'llab-quvvatlaydigan drayver menejeri orqali amalga oshiriladi. JDBC drayverlari to'liq Java dasturida yozilishi mumkin, shunda ularni ilova sifatida yuklab olish mumkin yoki mavjud ma'lumotlar bazasiga kirish kutubxonalariga kirish uchun mahalliy usullardan foydalanish mumkin. (bu haqda keyinroq)

Java dasturchilar to'plami (JDK)

Bu shunchaki sodda: JDK1.1 JDBC1.0 dasturini amalga oshiradi, JDK1.2 esa JDBC2.0 ni amalga oshiradi. Esda tutingki, JDBC API past darajadagi JDBC drayverlaridan foydalanish va yaratish uchun mo'ljallangan. Dasturchilar nuqtai nazaridan, JDBC bu ed java.sql boshqa paketli qo'ng'iroq. * Shunisi ajablantiradigan narsa shundaki, tegishli ma'lumotlar bazasiga ulanish uchun zarur bo'lgan drayverlarni ilova bilan birga dinamik ravishda yuklab olish mumkin.

JDBC Core etti (7) interfeys va ikkita (2) sinfdan iborat. Ma'lumotlar bazasi bilan ishlashingiz kerak bo'lgan narsalarning 90% ushbu interfeys va sinflarda topiladi. Har bir JDBC drayveri Driver interfeysini bajarishi kerak. Bu Dr iverManager siz ko'rsatadigan ma'lumotlar bazasi uchun yagona manba qidiruvi (URL) uchun drayverni topishda foydalanadigan sinf. (keyinroq URL manzillarida batafsilroq) DriveManager sinfi JDBC ish vaqtining bir qismidir va u Driver ob'ektlarini yuklaydi va ma'lumotlar bazasi ulanishini y uu talabiga binoan yaratadi. Ulanish xususiyatlarini topish va etkazib berish uchun juda kam mijoz DriverPropertyInfo sinfidan foydalanishi kerak.

Statement ob'ektlari ulanish bo'yicha SQL ko'rsatmalarini bajarish uchun konteyner sifatida ishlatiladi. Dasturchilar bir nechta Statement ob'ektlarini ajratishlari va ko'pgina SQL iboralarini qayta ishlash uchun ularning har birini qayta ishlatishlari mumkin. PreparedStatement va Callable Statement ob'ektlari Statement interfeysining muhim qo'shimcha qismidir. TayyorlanganStatement ob'ekti oldindan tuzish va bir necha marta bajarish uchun ishlatiladi. CallableStatement ob'ekti sto qizil protsedurani namoyish qilish va bajarish uchun ishlatiladi. Ikkala ob'ekt turi ham SQL so'rovida parametrlarni o'tkazishga imkon beradi.

ResultSet ob'ekti so'rov bayonnomasini bajarayotganda ma'lumotlar bazasi tomonidan qaytarilgan qatorlarni ushlab turadi. Ob'ekt joriy ma'lumotlar qatoriga ishora qiluvchi kursorni saqlab turadi. ResultSet ob'ektida ma'lumotlarni boshqarish uchun ko'plab usullar mavjud. ResursSetMetaData ob'ektini olish uchun dasturchi natijalar to'plamining turlari va xususiyatlarini olish uchun getMetaData usulidan foydalanishi mumkin.

JDBC2.0 JDBC1.0-ga nisbatan quyidagi yaxshilanishlarni taklif etadi:

Natijalar to'plamida oldinga va orqaga aylantiring yoki ma'lum bir qatorga o'ting

SQL buyruqlaridan foydalanishning o'rniga Java dasturlash tilidagi usullardan foydalangan holda ma'lumotlar bazasi jadvallariga yangilanishlar qiling

Ma'lumotlar bazasiga birlik yoki to'plam sifatida bir nechta SQL operatorlarini yuboring

Yangi SQL3 ma'lumotlar turlarini ustun qiymatlari sifatida foydalaning

 

JDBC Arxitektura


Ilovalar va Appletlar JDBC orqali ma'lumotlar bazalariga sof Java drayverlardan foydalangan holda kirishlari mumkin:

Direct-to Database Pure Java Driver: Ushbu turdagi drayver JDBC qo'ng'iroqlarini to'g'ridan-to'g'ri DBMS-lar tomonidan ishlatiladigan tarmoq protokoliga o'zgartiradi, mijoz mashinasidan DBMS serveriga to'g'ridan-to'g'ri qo'ng'iroqni amalga oshirishga imkon beradi va intranetga kirish uchun amaliy echimni ta'minlaydi.

Ma'lumotlar bazasi uchun O'rta dastur uchun toza Java Driver: Ushbu turdagi drayver JDBC qo'ng'iroqlarni o'rta dastur ta'minotchisining protokoliga o'zgartiradi, keyinchalik u o'rta dasturlar serveri tomonidan DBMS protokoliga tarjima qilinadi. O'rta dastur turli xil ma'lumotlar bazalariga ulanishni ta'minlaydi.

JDBC ulanish yechimi sifatida ODBC drayverlaridan va mavjud ma'lumotlar bazasi mijoz kutubxonalaridan foydalanishingiz mumkin:

JDBC-ODBC Bridge plus ODBC Driver: Quyosh ko'prigi mahsuloti ODBC drayverlari orqali JDBC kirishini ta'minlaydi. Ikkala ODBC ikkilik kodi va ba'zida ma'lumotlar bazasi mijoz kodi ushbu drayverni ishlatadigan har bir mashinaga yuklanishi kerak.

Native-API qisman Java Driver: Ushbu drayver uslubi JDBC qo'ng'iroqlarini Oracle, Sybase, Informix va shunga o'xshash dasturlar uchun API mijoz qo'ng'iroqlariga o'zgartiradi. Har bir mijoz mashinasida ba'zi ikkilik kodni yuklashni talab qiladi.

Ma'lumotlar bazasi ulanishi (ODBC) va JDBC / ODBC ko'prigi

JDBC va ODBC SQL uchun X / Open CLI-ga asoslangan umumiy ota-onani bo'lishadi. JDBC drayverlari ko'pgina ma'lumotlar bazalarini kesishlariga qaramay, mavjud ODBC drayverlaridan foydalanib, ma'lumotlar bazasidan xabardor Java dasturlarini yozishingiz mumkin. Javasoft va Intersolv maxsus JDBC drayverini - JDBC / ODBC ko'prigini yozdilar, shunda ishlab chiqaruvchilar Java dasturlarida mavjud ODBC drayverlaridan foydalanishlari mumkin. JDBC / ODBC ko'prigi mijozga yoki Java dasturi ishlayotgan joyda oldindan o'rnatishni talab qiladi, chunki ODBC-dan JDBC-ga tarjimani amalga oshirish uchun ko'prik m ake ona usuli chaqirishi kerak. Bu mahalliy usullardan foydalanadigan JDBC drayverlariga ham tegishli. Java dasturlari bilan tarmoq orqali faqat 100% toza Java drayverlarini yuklab olish mumkin.

JDBC / ODBC ko'prigi aslida JDBC drayveri bo'lib, ODBC-ga va undan past darajadagi tarjimani amalga oshiradi. Bu Babel minorasi kabi, lekin u mavjud bo'lganda ma'lum bir ma'lumotlar bazasi uchun osongina JDBC drayveriga o'tishingiz mumkin. Agar Java dasturining asosiy kodiga biron bir o'zgartirish kiritish kerak bo'lsa, kamgina.

JDBC URL manzilidan qanday foydalanadi

Ma'lumotlar manbasini belgilashning formati kengaytirilgan yagona manba joylashtiruvchisi (URL) bo'lib, quyidagicha aniqlanadi:


: :


Masalan:

jdbc: odbc: //shrike.depaul.edu: 8080 / my_database

Subprotokol JDBC drayverlari tomonidan o'zlarini tanib olish uchun ishlatiladi va DriverManager subprotokoldan tegishli drayverni ma'lum bir subprotokolga moslashtirish uchun foydalanadi. DriverManager DriverMa nager.getConnection usulini ishga tushirganda ulanish aniqlanadi. Dasturga oid qo'shimcha ma'lumotlar o'quvchi uchun qoladi, chunki ular ushbu kirish doirasiga kirmaydi.

JDBC bilan bog'liq savollar, sharhlar, xavfsizlik masalalari

1) JDBC 2.0 API - bu JDBC-ning so'nggi yangilanishi. JDBC 2.0 ko'plab yangi xususiyatlarni o'z ichiga oladi, ular orasida aylanadigan natijalar to'plami ham mavjud. JDBC 2.0 uchun ikkita qism mavjud: JDBC 2.0 Core API va JDBC 2.0 Standard Extension API. JDBC 2.0 Core API, JDK 1.2 versiyasida d ni o'z ichiga oladi.

2) JDK 1.2 beta4 versiyasiga kiritilgan JDBC-ODBC ko'prigi JDBC 2.0 API-ni qo'llab-quvvatlamaydi. Sun va Intersolv ko'prikning yangi versiyasini ishlab chiqarish ustida ishlamoqda, bu esa JDBC 2.0 API-ning yangi xususiyatlarini qo'llab-quvvatlaydi, masalan, aylantiriladigan resu lt to'plamlari.

3) Netscape Navigator kabi brauzerda ishlaydigan ishonchsiz ilovadan JDBC-ODBC ko'prigidan foydalanishga yo'l qo'yilmaydi. JDBC-ODBC ko'prigi xavfsizlik nuqtai nazaridan ishonchsiz kodni chaqirishga imkon bermaydi. Bu juda yaxshi, chunki brauzer tomonidan yuklab olingan ishonchsiz applet ODBC-ni chaqirib Java xavfsizligini buzolmaydi. Esda tutingki, ODBC - bu mahalliy kod, shuning uchun ODBC chaqirilganda, Java xavfsizlik buzilishi yuz bermasligini kafolatlay olmaydi. Boshqa tomondan, Pure Java JDBC drayverlari appletlar bilan yaxshi ishlaydi. Ular to'liq yuklab olinadi va biron-bir konfiguratsiyani talab qilmaydi.

Va nihoyat, shuni ta'kidlashni istardikki, JDBC-ODBC ko'prigini appletviewer-da ishlaydigan appletlar bilan ishlatish mumkin, chunki appletviewer bu dasturlar ishonchli deb taxmin qiladi. HotJava brauzerida ishlaydigan (Java dasturiy ta'minotidan) ishlaydigan appletlar bilan JDBC-ODBC ko'prigini ham ishlatish mumkin, chunki HotJava applet xavfsizligini o'chirib qo'yish imkoniyatini beradi. Umuman olganda, applet xavfsizligini o'chirib qo'yish xavflidir, lekin ba'zi bir boshqariladigan vaziyatlarda, masalan, appletlar uchun faqat xavfsiz intranet muhitida foydalanilishi mumkin. Agar siz ushbu tanlovni tanlagan bo'lsangiz, ehtiyot bo'lishni unutmang va xavfsizlik bilan bog'liq muammolarni oldini olish uchun Java Java JDBC drayveridan foydalaning.

4) Hozirda ko'pchilik ish stoli ma'lumotlar bazalari ostidagi ODBC-dan foydalanadigan JDBC echimini talab qiladi. Buning sababi, ushbu ma'lumotlar bazasi mahsulotlarini etkazib beruvchisi Java JDBC drayverlarini to'liq amalga oshirmagan. Eng yaxshi yondashuv ODBC-ni va siz foydalanmoqchi bo'lgan ma'lumotlar bazasini qo'llab-quvvatlaydigan tijorat JDBC drayveridan foydalanishdir. .

5) JavaSoft-dan JDBC-ODBC ko'prigi ish stoli ma'lumotlar bazasiga tarmoqqa kirishni ta'minlamaydi. JDBC-ODBC ko'prigi ODBC-ni mahalliy DLL sifatida yuklaydi va Access kabi ish stoli bazalari uchun odatiy ODBC drayverlari tarmoqqa ulanmagan. JDBC-ODBC ko'prigi RMI-JDBC ko'prigi bilan birgalikda foydalanish mumkin, ammo tarmoq orqali Access kabi ish stoli ma'lumotlar bazasiga kirish uchun. Ushbu RMI-JDBC-ODBC eritmasi bepul.

6) JDK 1.1 va JDK 1.2 ikkala JDBC va JDBC-ODBC ko'prigini o'z ichiga oladi. JDK 1.2 JDBC-ning so'nggi versiyasi bo'lgan JDBC 2.0 Core API-ni o'z ichiga oladi. JDBC yuklash pagonkasida alohida yuklab olish uchun taqdim etilgan JDBC va JDBC-ODBC ko'priklarining versiyalari faqat JDK 1.0.2 bilan foydalanish uchun mavjud.

7) ODBC 2.0 drayverlarining aksariyati ko'prik bilan ishlashi kerak. ODBC drayverlari o'rtasida funktsionallikda ba'zi bir tafovut mavjudligi sababli, ko'prikning ishlashiga ta'sir ko'rsatishi mumkin. Ko'prik Microsoft Access va FoxPro kabi mashhur kompyuter ma'lumotlar bazalari bilan ishlaydi.

8) MicroSoft J ++ JDBC-ODBC ko'prigini qo'llab-quvvatlamaydi, chunki u Java Native Interfeys (JNI) ni qo'llamaydi. Ammo har qanday Java JDBC drayveri J ++ bilan ishlashi kerak.

9) DriverManager.getConnection () -ga qo'ng'iroq paytida, 'Hech qanday drayver yo'q' xatosi yuzaga keladi. Buning sababi getConnection () ni chaqirishdan oldin yoki tegishli JDBC drayveringiz tomonidan tan olinmaydigan yaroqsiz JDBC URL-ni ko'rsatmasdan oldin tegishli JDBC drayverini yuklay olmagan bo'lishi mumkin. Agar siz belgilagan URL manzil sizning JDBC drayveringiz tomonidan tan olinmagan deb o'ylasangiz, sizning JDBC drayveringizning mahsulot hujjatlarini tekshirish yoki JDBC drayveringiz bilan bog'lanish yaxshiroqdir. Bunga qo'shimcha ravishda, JDBC-ODBC ko'prigidan foydalanganda, agar ushbu ko'prikka kerak bo'lgan bitta yoki undan ko'p umumiy kutubxonani yuklab olishning iloji bo'lmasa, bu xato yuz berishi mumkin. Agar bu sabab deb o'ylasangiz, ulangan kutubxonalar ko'prikka kirishiga ishonch hosil qilish uchun konfiguratsiyani tekshiring.


10) Ba'zan java.sql.DriverManager sinfi, JDK 1.0.2-ni qo'llaydigan Netscape Navigator 3.0 kabi brauzerda JDBC ilovasi ishlaganda topilmaydi. JDK1.0.2-da JDBC mavjud emasligi sababli DriverManager klassi odatda brauzerda ishlaydigan Java virtual mashinasi tomonidan topilmaydi. Bu erda veb-mijozlaringizning qo'shimcha konfiguratsiyasini talab qilmaydigan echim mavjud. Yodingizda bo'lsin, java. * Paketlaridagi darslarni ko'pchilik brauzerlar xavfsizlik nuqtai nazaridan yuklay olmaydilar. Shu sababli, barcha java JDBC drayverlarining java.sql. * Sinflarining jdbc.sql. * Deb o'zgartirilgan versiyalari va ushbu o'zgartirilgan sinflarni ishlatadigan drayverlarining versiyalari. Agar siz jdbc.sql. * Dasturini sizning kodingizga import qilsangiz (java.sql. * O'rniga) va sizning JDBC drayveringiz sotuvchisi tomonidan taqdim etilgan jdbc.sql. * Sinflarini appletingiz kod bazasiga qo'shsangiz, unda barcha JDBC sinflari kerak bo'ladi. ilova tomonidan, DriverManager sinfini o'z ichiga olgan holda ish vaqti vaqtida brauzer tomonidan yuklab olinishi mumkin. Ushbu echim sizning ilovangizga JDK 1.0.2-ni qo'llaydigan har qanday mijoz brauzerida ishlashga imkon beradi. Sizning ilovangiz JDK 1.1-ni qo'llab-quvvatlaydigan brauzerlarda ham ishlaydi, garchi unumdorligi sababli JDK 1.1 sinflariga o'tishni xohlasangiz ham. Shuningdek, bu erda keltirilgan echim shunchaki namuna ekanligini va boshqa echimlar ham mumkinligini yodda tuting.

11) class.forName () metodiga murojaat qilish sizning JDBC drayveringizni yuklay olmasligi mumkin. Bu JDK 1.1.x-dagi xato, bu Class.forName () ni ishdan chiqishiga olib kelishi mumkin. Atrofdagi ish aniq qo'ng'iroq qilishdir: DriverManager.registerDriver (yangi YourDriverClass ()). JDK-dagi aniq muammo - bu sinf yuklovchisidagi poyga holati, bu haydovchi sinfidagi kodning statik qismini haydovchini haydovchi menejerida ro'yxatdan o'tkazish va ro'yxatdan o'tkazishga to'sqinlik qiladi.

12) Xavfsizlik sababli brauzerlar java. * Paketlarini yuklamaydi. JDBC-ni JDK1.1-ga yangilanmagan brauzerlarda ishlatish uchun java.sql va java.math paketlarini jdbc.sql va jdbc.math deb qayta nomlashni maslahat beramiz. P Jure Java JDBC drayverlarini etkazib beruvchilarning aksariyati ushbu nomlangan paketlarning versiyalarini taqdim etmoqda. JDK 1.1 qo'llab-quvvatlashi sizning brauzeringizga qo'shilganida, siz o'z ilovalaringizni java. * Paket nomlariga qaytarishingiz kerak.

Xulosa (nima uchun JDBC eng yaxshi!)

JDBC afzalliklari

Korxonalar, mavjud ma'lumotlar bazasini boshqarish tizimlarida saqlangan bo'lishiga qaramay, o'rnatilgan ma'lumotlar bazasidan foydalanishda davom etish va ma'lumotlarga osongina kirish orqali JDBC-da mavjud bo'lgan korxona ma'lumotlariga ega bo'lishlari mumkin.

Rivojlanish vaqtining qisqarishi biznesga foyda keltiradi. Java va JDBC kombinatsiyasi dasturni ishlab chiqarishni oson va iqtisodiy qiladi. JDBC o'rganish oson, ishlatish oson va saqlash uchun arzon.

JDBC bilan tarmoq kompyuterlari uchun nolinchi konfiguratsiya mavjud, chunki ulanish JDBC URL manzili tomonidan to'liq aniqlanganligi sababli mijoz tomonidan konfiguratsiya talab qilinadi. Bu tarmoqni hisoblash paradigmasini qo'llab-quvvatlaydi va dasturiy ta'minotni markazlashtiradi.

JDBC asosiy xususiyatlari

JDBC meta-ma'lumotlarga kirish ma'lum bazaga ulanish imkoniyatlari va imkoniyatlarini tushunishi kerak bo'lgan murakkab dasturlarni ishlab chiqishga imkon beradi.

Sof JDBC drayveri maxsus o'rnatishni talab qilmaydi; u JDBC qo'ng'iroqlarini amalga oshiradigan ilovaning bir qismi sifatida avtomatik ravishda yuklab olinadi.

JDBC ma'lumotlar bazasi ulanishlarini aniqlash uchun Internet-standart URL-larning afzalliklaridan foydalanadi.

Java platformasining asosiy qismi sifatida JDBC platforma joylashgan hamma joyda mavjud. Bu shuni anglatadiki, Java dasturlari haqiqatan ham bir marta ma'lumotlar bazasi dasturlarini yozishi va istalgan joyga ma'lumot olishlari mumkin.

Java dasturida ma'lumotlar bazasi ulanishi kerak bo'lganda, JDBC ulanishini yaratish uchun DriverManager.getConnection () usullaridan biri qo'llaniladi. Amaldagi URL ma'lum ma'lumotlar bazasi va JDBC drayveriga bog'liq. Bu har doim "jdbc:" protokoli bilan boshlanadi, ammo qolgan qismi aniq sotuvchiga bog'liq.

Connection conn = DriverManager.getConnection(

"jdbc:somejdbcvendor:other data needed by some jdbc vendor",

"myLogin",

"myPassword");

try {

/* you use the connection here */

} finally {

//It's important to close the connection when you are done with it

try {

conn.close();

} catch (Throwable e) { /* Propagate the original exception

instead of this one that you want just logged */

logger.warn("Could not close JDBC Connection",e);

}

}

Java SE 7-dan boshlab, yuqoridagi kodni soddalashtirish uchun Java-ning manbalar bilan ishlash bayonotidan foydalanishingiz mumkin:

try (Connection conn = DriverManager.getConnection(

"jdbc:somejdbcvendor:other data needed by some jdbc vendor",

"myLogin",

"myPassword")) {

/* you use the connection here */

} // the VM will take care of closing the connection

Aloqa o'rnatilgandan so'ng, bayonot yaratilishi mumkin.

try (Statement stmt = conn.createStatement()) {

stmt.executeUpdate("INSERT INTO MyTable(name) VALUES ('my name')");

}

Shuni esda tutingki, Ulanishlar, Bayonotlar va ResultSets ko'pincha operatsion tizim manbalarini, masalan, rozetkalar yoki fayl tavsiflari bilan bog'laydi. Masofadagi ma'lumotlar bazasi serverlariga ulanish holatida, keyingi manbalar serverda, masalan, hozirda ochilgan ResultSets uchun kursorlarga ulanadi. Har qanday JDBC ob'ekti o'z rolini o'ynashi bilanoq uni yopish juda muhimdir; axlat yig'ilishiga ishonmaslik kerak. Yuqorida sinab ko'rilgan manbalar tuzilishi buni oldini oladigan kod naqshidir.

Ma'lumotlar bazasidan so'rovlar mexanizmi yordamida ma'lumotlar bazasidan olinadi. Quyidagi misolda bayonot yaratish va so'rovni bajarish ko'rsatilgan.

try (Statement stmt = conn.createStatement();

ResultSet rs = stmt.executeQuery("SELECT * FROM MyTable")

) {

while (rs.next()) {

int numColumns = rs.getMetaData().getColumnCount();

for (int i = 1; i <= numColumns; i++) {

// Column numbers start at 1.

// Also there are many methods on the result set to return

// the column as a particular type. Refer to the Sun documentation

// for the list of valid conversions.

System.out.println( "COLUMN " + i + " = " + rs.getObject(i));

}

}

}

try (PreparedStatement ps =

conn.prepareStatement("SELECT i.*, j.* FROM Omega i, Zappa j WHERE i.name = ? AND j.num = ?")

) {

// In the SQL statement being prepared, each question mark is a placeholder

// that must be replaced with a value you provide through a "set" method invocation.

// The following two method calls replace the two placeholders; the first is

// replaced by a string value, and the second by an integer value.

ps.setString(1, "Poor Yorick");

ps.setInt(2, 8008);

// The ResultSet, rs, conveys the result of executing the SQL statement.

// Each time you call rs.next(), an internal row pointer, or cursor,

// is advanced to the next row of the result. The cursor initially is

// positioned before the first row.

try (ResultSet rs = ps.executeQuery()) {

while (rs.next()) {

int numColumns = rs.getMetaData().getColumnCount();

for (int i = 1; i <= numColumns; i++) {

// Column numbers start at 1.

// Also there are many methods on the result set to return

// the column as a particular type. Refer to the Sun documentation

// for the list of valid conversions.

System.out.println("COLUMN " + i + " = " + rs.getObject(i));

} // for

} // while

} // try

} // try


Download 61.15 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling