l. วิธีการเชื่อมต่อกับฐานข้อมูล: 1) ODBC (Open Database Connectivity)
อินเทอร์เฟซที่ใช้ภาษา C เพื่อเข้าถึงกลไกฐานข้อมูลที่ใช้ SQL มีอินเทอร์เฟซที่สอดคล้องกันสำหรับการสื่อสารกับฐานข้อมูลและการเข้าถึงข้อมูล
2) เจดีบีซี
ODBC เวอร์ชัน Java
2 อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน JDBC คำตอบ: อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน JDBC คือ:
1) อินเทอร์เฟซการเข้าถึงข้อมูลมาตรฐานซึ่งสามารถเชื่อมต่อกับฐานข้อมูลต่างๆ
2) ชุดของคลาสและอินเทอร์เฟซในภาษาการเขียนโปรแกรม JAVA
อินเตอร์เฟสการเขียนโปรแกรมแอปพลิเคชัน JDBC สามารถ:
1) เชื่อมต่อกับฐานข้อมูล
2) ส่งสตริงการสืบค้น SQL ไปยังฐานข้อมูล
3) ประมวลผลผลลัพธ์
อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน JDBC มีสองส่วนหลัก:
1) อินเทอร์เฟซการพัฒนาแอปพลิเคชัน Java สำหรับนักพัฒนาแอปพลิเคชัน Java
2) อินเทอร์เฟซการพัฒนาไดรเวอร์ JDBC
3. ไดรเวอร์ JDBC
คำตอบ: 1) คลาสจำนวนมากที่ใช้คลาสและอินเทอร์เฟซ JDBC;
2) จัดเตรียมคลาสที่ใช้อินเทอร์เฟซ java.sql.Driver
4. คำตอบของไดรเวอร์ JDBC สี่ประเภท: 1) สะพาน JDBC-ODBC
การเข้าถึง JDBC จัดทำโดยไดรเวอร์ ODBC
2) API ท้องถิ่น
ไดรเวอร์ Java บางตัวแปลงการเรียก JDBC เป็น API ไคลเอนต์ในเครื่อง
3) JDBC-สุทธิ
ไดรเวอร์ Java แท้ที่ถ่ายโอนการเรียก JDBC ไปยัง DBMS และไม่เกี่ยวข้องกับโปรโตคอลเครือข่าย จากนั้นการโทรจะถูกแปลงเป็นโปรโตคอล DBMS ผ่านทางเซิร์ฟเวอร์
4) โปรโตคอลท้องถิ่น
ไดรเวอร์ Java แท้ แปลงการเรียก JDBC เป็นโปรโตคอลเครือข่ายที่ใช้โดย DBMS
5 โดยตรง คำตอบของอินเทอร์เฟซนักพัฒนา JDBC: 1) java.sql - ฟังก์ชันหลักของ JDBC ภายใต้แพลตฟอร์ม java 2 เวอร์ชันมาตรฐาน (J2SE)
2) javax.sql - ฟังก์ชั่นที่ได้รับการปรับปรุง JDBC ภายใต้แพลตฟอร์ม Java 2, Enterprise Edition (J2EE)
6. ใช้ URL เพื่อยืนยันฐานข้อมูล คำตอบ: เราใช้ URL เพื่อตรวจสอบฐานข้อมูล (ไดรเวอร์ที่ถูกต้อง, โฮสต์ที่ถูกต้อง, โปรโตคอลที่ถูกต้อง, โปรโตคอลที่ถูกต้อง , ชื่อผู้ใช้และรหัสผ่านที่ถูกต้อง);
ไวยากรณ์: โปรโตคอล:โปรโตคอลย่อย:ชื่อย่อย
ตัวอย่าง: jdbc:db2:MyTest
jdbc:db2://localhost:6789/MyTest
7. ฟังก์ชั่นที่เพิ่มขึ้นของแพ็คเกจ javax.sql JDBC2.0 คำตอบ: 1) อินเทอร์เฟซแหล่งข้อมูล;
2) พูลการเชื่อมต่อ;
3) ธุรกรรมแบบกระจาย;
4) Rowset;
8. สร้างแอปพลิเคชัน JDBC พื้นฐาน คำตอบ: 1) ขั้นตอนที่ 1: ลงทะเบียนไดรเวอร์;
2) ขั้นตอนที่ 2: สร้างการเชื่อมต่อกับฐานข้อมูล
3) ขั้นตอนที่ 3: สร้างคำสั่ง;
4) ขั้นตอนที่ 4: ดำเนินการคำสั่ง SQL;
5) ขั้นตอนที่ 5: ประมวลผลผลลัพธ์
6) ขั้นตอนที่ 6: ปิดออบเจ็กต์ JDBC
9. ลงทะเบียนไดรเวอร์ (ขั้นตอนที่ 1)
คำตอบ: 1) ไดรเวอร์ใช้เชื่อมต่อกับฐานข้อมูล
2) อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน JDBC ใช้ไดรเวอร์ตัวแรกที่สามารถเชื่อมต่อกับ URL ที่กำหนดได้สำเร็จ
3) สามารถโหลดไดรเวอร์หลายตัวพร้อมกันได้
10. วิธีลงทะเบียนไดรเวอร์:
คำตอบ: 1) ใช้คลาสโหลดเดอร์ (กำลังโหลด; สร้างอินสแตนซ์; ลงทะเบียนใน DriverManager)
ก. Class.forName("Com.ibm.db2.jdbc.app.DB2Driver");
ข. Class.forName("Com.ibm.db2.jdbc.net.DB2Driver");
ค. Class.forName("Com.microsoft.jdbc.sqlServer.SQLServerDriver);
d.Class.forName("oracl.jdbc.driver.OracleDriver");
e. Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
2) สร้างอินสแตนซ์ของไดรเวอร์
ก. Driver drv = new COM.cloudscape.core.RmiJdbcDriver();
1. สร้างการเชื่อมต่อกับฐานข้อมูล (ขั้นตอนที่ 2)
คำตอบ: เมื่อ DriverManager เรียกใช้เมธอด getConnection(urlString) จริงๆ แล้วมันจะเรียกเมธอด Connect(urlString) ของไดรเวอร์
1) เมื่อไดรเวอร์สอดคล้องกับ URL ฐานข้อมูลอย่างแน่นอน DriverManager จะสร้างการเชื่อมต่อ
2) เมื่อไม่มีไดรเวอร์ที่ตรงกัน ระบบจะคืนค่า null และตรวจสอบไดรเวอร์ถัดไป
3) หากไม่ได้สร้างการเชื่อมต่อ ข้อยกเว้น SQLExcepiton จะถูกส่งออกไป
2. URL JDBC ที่ใช้กันทั่วไปบางส่วน
คำตอบ: 1) JDBC-ODBC: jdbc:odbc:<DB>
2) ออราเคิล: jdbc:oracle:oci:@<sid> หรือ jdbc:oracle:thin:@<SID>
3) เว็บลอจิก MS-SQL: jdbc:weblogic:mssqlserver4:<DB>@<HOST>:<PORT>
4) DB2: jdbc:db2:MyTest หรือ jdbc.db2://localhost:6789/MyTest (ต้องใช้ชื่อผู้ใช้และรหัสผ่าน)
3. คำตอบวิธีการเชื่อมต่อไดรเวอร์: 1) สร้างการเรียกโดยตรงไปยังอินสแตนซ์ไดรเวอร์ที่ระบุ;
2) หลีกเลี่ยงปัญหาการเข้าถึงทั่วไป
ไดร์เวอร์ drv = COM.ibm.db2.jdbc.app.DB2Driver(); ใหม่
การเชื่อมต่อ con = null;
ลอง {con = drv.connect("jdbc:db2:MyTest",new Properties())}
catch(SQLException e){}
4. สร้างคำสั่ง (ขั้นตอนที่ 3)
คำตอบ: 1) สามอินเทอร์เฟซของคำสั่ง:
ก. คำชี้แจง;
ข. คำชี้แจงที่เตรียมไว้ (สืบทอดมาจากคำชี้แจง);
c. CallableStatement (สืบทอดมาจาก ReadyStatement);
2) ใช้เมธอด Connection.createStatement() เพื่อรับอ็อบเจ็กต์ Statement
5. ออบเจ็กต์ PreparationStatement คำตอบ: 1) การเรียก ProparedStatement นั้นมีประสิทธิภาพมากกว่าคำสั่ง;
2) สืบทอดมาจากคำชี้แจง;
3) ไวยากรณ์: PreparationStatement pstm = Connection.prepareStatement(sqlString);
6. คำตอบของวัตถุ CallableStatement: 1) เรียกขั้นตอนที่เก็บไว้ในฐานข้อมูลผ่าน CallableStatement;
2) สืบทอดมาจาก ReadyStatement;
3) CallableStatement cstm = Connection.prepareCall("{call return_student[?,?]}");
cstm.setString(1,"8623034");
cstm.registerOutparameter(2, ประเภท REAL);
cstm.execute();
float gpa = cstm.getFloat(2);
7. การเปรียบเทียบส่วนต่อประสานคำสั่ง: |. คำสั่งที่เตรียมไว้ |
-------------------------------------------------- -------------------------------------------------- ----------------------------
การเขียนตำแหน่งโค้ด | . ลูกค้า | . เซิร์ฟเวอร์
-------------------------------------------------- -------------------------------------------------- ----------------------------
การเขียนตำแหน่งโค้ด | . ไคลเอนต์ | . ฝั่งเซิร์ฟเวอร์
-------------------------------------------------- -------------------------------------------------- ----------------------------
เทคโนโลยีการเขียนโค้ด |. Java, การดำเนินการของ SQL |. Java, การดำเนินการของ SQL |
-------------------------------------------------- -------------------------------------------------- ----------------------------
ความสามารถในการกำหนดค่า |. สูง |. สูงในครั้งแรก, ต่ำหลังจากนั้น |
-------------------------------------------------- -------------------------------------------------- ----------------------------
การพกพา |. สูง | . สูง สมมติว่ารองรับ
-------------------------------------------------- -------------------------------------------------- ----------------------------
ประสิทธิภาพการส่งผ่าน |. ต่ำ |. ต่ำเป็นครั้งแรก, สูงหลังจากนั้น |