Uploaded by Bekzod Mirzayev

3-Java EE va JDBC bilan CRUD amallarini bajarish

advertisement
Java EE va JDBC bilan CRUD amallarini bajarish
Reja:
1. CRUD with JDBC Project
JDBC nima?
Java ma`lumotlar bazasiga ulanish (JDBC) bu Java dasturlariga
ma`lumotlar bazasini boshqarish tizimlariga kirish imkonini beruvchi standart
amaliy dasturlash interfeysining (API) JavaSoft spetsifikatsiyasi. JDBC API Java
dasturlash tilida yozilgan interfeyslar va sinflar to`plamidan iborat.
Ushbu standart interfeys va sinflardan foydalanib, dasturchilar
ma`lumotlar bazalariga ulanadigan ilovalarni yozishlari, tuzilgan so`rovlar tilida
(SQL) yozilgan so`rovlarni yuborishlari va natijalarni qayta ishlashlari mumkin.
JDBC standart spetsifikatsiya bo`lganligi sababli, JDBC API dan
foydalanadigan bitta Java dasturi ushbu ma`lumotlar bazasi uchun drayver
mavjud bo`lsa, har qanday ma`lumotlar bazasini boshqarish tizimiga (DBMS)
ulanishi mumkin.
JDBC
Umumiy JDBC komponentlari
JDBC API quyidagi interfeys va sinflarni taqdim etadi:
DriverManager − Bu sinf ma`lumotlar bazasi drayverlari ro`yxatini boshqaradi. Aloqa pastki protokolidan foydalangan
holda java ilovasidan ulanish so`rovlarini tegishli ma`lumotlar bazasi drayveri bilan moslashtiradi. JDBC ostida
ma`lum bir subprotokolni taniydigan birinchi drayver ma`lumotlar bazasi ulanishini o`rnatish uchun ishlatiladi.
Driver − bu interfeys ma`lumotlar bazasi serveri bilan aloqalarni boshqaradi. Siz juda kamdan-kam hollarda Driver
obyektlari bilan bevosita muloqot qilasiz. Buning o`rniga siz ushbu turdagi ob`ektlarni boshqaradigan DriverManager
obyektlaridan foydalanasiz. Shuningdek, u Driver ob`ektlari bilan ishlash bilan bog`liq tafsilotlarni abstrakt qiladi.
Connection − bu ma`lumotlar bazasi bilan bog`lanishning barcha usullari mavjud bo`lgan interfeys. Connection
ob`ekti aloqa kontekstini ifodalaydi, ya`ni ma`lumotlar bazasi bilan barcha aloqa faqat connection ob`ekti orqali
amalga oshiriladi.
Statement − SQL bayonotlarini ma`lumotlar bazasiga yuborish uchun ushbu interfeysdan yaratilgan ob`ektlardan
foydalanasiz. Ayrim olingan interfeyslar saqlangan protseduralarni bajarishdan tashqari parametrlarni ham qabul
qiladi.
ResultSet − Ushbu ob`ektlar bayonot ob`ektlari yordamida SQL so`rovini bajarganingizdan so`ng ma`lumotlar
bazasidan olingan ma`lumotlarni o`zida saqlaydi.
SQLException − Bu sinf ma`lumotlar bazasi ilovasida yuzaga keladigan har qanday xatolarni ko`rib chiqadi.
JDBC (Java DataBase Connectivity)
Ma`lumotlar omboriga bog`lanish deb tarjima qilinadi.
Java dasturni har qanday turdagi MOBT bilan qo`llash uchun ishlatiladi. Java.sql
paketi orqali ishlatiladi
Java dastur va MOBT o`rtasida bog`lovchi vosita sifatida xizmat qiladi
Har bir MOBT ning o`zining drayveri mavjud. Qaysi MOBT ga ulamoqchi bo`lsangiz
o`sha drayverni yuklaysiz xolos.
JDBC
JDBC – ma`lumotlar omboriga maxsus URL orqali bog`lanishni ta`minlovchi DRAYVERlar
konsepsiyasiga asoslangan. Drayverlar esa dastur ishlayotgan paytda dinamik tarzda yuklanishi
mumkin.
JDBC ning afzalliklari
Foydalanish uchun juda qulay: foydalanuvchi(dasturchi) foydalanmoqchi bo`lgan
ma`lumotlar omborini boshqarish tizimi(MOBT) bilan ishlash ko`nikmasiga ega
bo`lmasdan turib ham bemalol dastur tuza oladi;
Agarda kompaniya boshqa MOBT ga o`tishni xoxlasa kod deyarli o`zgarmaydi.
O`zgarishlar esa aynan SQL dialektlari bilan bog`liq bo`ladi;
Hech qanday client dasturni o`rnatishga hojat yo`q;
Istalgan MOBTga yengil yoziladigan URL orqali bog`lanish mumkin;
JDBC API interfacelari
Asosan 2 xil turdagi interfacega ega: birinchisi – dastur yaratuvchilar uchun va ikkinchisi driver
yaratuvchilar uchun mo`ljallangan.
 MOBT bilan bog`lanish java.sql.Connection interface ini amalga oshirgan klass orqali amalga oshiriladi.
 Bog`lanishga ega bo`lgan holda Statement ob`ekti orqali MOBT ga SQL so`rovlarni amalga oshirish mumkin.
Statement ni quyidagi turlari mavjud:
java.sql.Statement – umumiy foydalanishga mo`ljallangan Statement
java.sql.PreparedStatement – parametrlarini berish imkoni mavjud bo`lgan
uchun mo`ljallangan Statement
java.sql.CallableStatement – MO funksiya va proseduralarini chaqirish
Statement
 java.sql.ResultSet – so`rov natijasi bilan ishlashga mo`ljallangan interface
so`rovlarni
uchun
bajarish
mo`ljallangan
JDBC orqali MO ga so`rovlarni amalga oshirish
JDBC orqali MO ga so`rovlarni amalga oshirish quyidagi bosqichlarda amalga oshiriladi:
Connect
Query
Process
results
Close
1-bosqich: Connect
Connect
URL ni aniqlash
Query
Driverni registratsiya qilish
Process
results
MO ga bog`lanish
Close
URLni aniqlash
• URL=“jdbc:”+mobt+“://”+host+“:”+port+“/”+db;
• mobt= "postgresql";
• host = "localhost";
• port = "5432";
• db = “test_db";
Driverni registratsiya qilish
Class.forName("org.postgresql.Driver")
MO ga bog`lanish
url= “jdbc:postgresql://localhost:5432/test_db";
dbUser = "postgres";
dbPassword = “******";
Connection connection = DriverManager.getConnection(url, dbUser, dbPassword);
2-bosqich: Query
Connect
Query
Statement yaratish
Process
results
MO so`rov yuborish
Close
Statement yaratish
Statement statement = connection.createStatement();
MO so`rov yuborish
String sql = "select * from users;";
statement.executeQuery(sql);
3-bosqich: So`rov natijasini qabul qilib olish
So`rov natijasini qabul qilib olish
String sql = "select * from users;";
ResultSet resultSet = statement.executeQuery(sql);
Natijani java o`zgaruvchilariga o`zlashtirish
ResultSet resultSet = statement.executeQuery(sql);
while (resultSet.next()) {
System.out.print(“id=" + resultSet.getInt(1));
System.out.print("\nname=" + resultSet.getString(“name"));
System.out.print("\nusername=" + resultSet.getString(3));
System.out.println("\tpassword=" + resultSet.getString(4));
System.out.println("\temail=" + resultSet.getString(5));
System.out.println("\tphone=" + resultSet.getString(4));
}
4-bosqich: Connectionni yopish
PreparedStatement bilan ishlash
String sql = "select * from users where name like `%?%`? and ? Email like `%?`";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, “ali”);
preparedStatement.setString(2, “gmail.com”);
ResultSet resultSet = preparedStatement.executeQuery();
CallableStatement bilan ishlash
String sql = “{call add_user(?,?,?,?,?,?,?)}";
CallableStatement callableStatement = connection.prepareCall(sql);
callableStatement.setString(1, “Solijon");
callableStatement.setString(2, “solijon");
callableStatement.setString(3, “123");
callableStatement.setString(4, “solijon@gmail.com");
callableStatement.setString(5, “+998997776655");
callableStatement.registerOutParameter(6, 16);
callableStatement.registerOutParameter(7, Types.VARCHAR);
callableStatement.executeUpdate();
E`TIBORINGIZ UCHUN RAHMAT!
Download