ระบบแอปพลิเคชันฐานข้อมูลเชิงสัมพันธ์เครือข่ายมีโครงสร้างสามระดับ ไคลเอนต์และเซิร์ฟเวอร์เชื่อมต่อผ่านเครือข่าย โปรแกรมแอปพลิเคชันไคลเอนต์สื่อสารกับโปรแกรมฐานข้อมูลฝั่งเซิร์ฟเวอร์ตามโปรโตคอลการสื่อสาร โปรแกรมบริการฐานข้อมูลสื่อสารกับระบบการจัดการฐานข้อมูลผ่านคำสั่ง SQL
มีสองวิธีในการเชื่อมต่อโปรแกรม Java กับฐานข้อมูล หนึ่งคือการใช้บริดจ์ JDBC-ODBC เพื่อเชื่อมต่อกับฐานข้อมูล และอีกอย่างคือการใช้ไดรเวอร์ Java JDBC แท้เพื่อเชื่อมต่อกับฐานข้อมูล
เชื่อมต่อกับฐานข้อมูลโดยใช้บริดจ์ JDBC-ODBC
โปรแกรม Java ใช้บริดจ์ JDBC-ODBC เพื่อเชื่อมต่อกับฐานข้อมูล กระบวนการสื่อสารระหว่างโปรแกรม Java และฐานข้อมูลคือ:
ขั้นแรก แอปพลิเคชันฐานข้อมูลจะออกการเรียก API ไปยังตัวจัดการไดรเวอร์ ODBC แปลงการโทรนี้เป็นการเรียกไดรเวอร์ ODBC เป็นระบบการจัดการฐานข้อมูลในทางกลับกันจะแปลงการโทรนี้เป็นอินพุต/เอาท์พุตข้อมูล ระบบ. โทร. ในที่สุดระบบปฏิบัติการจะได้รับข้อมูลจริงจากฐานข้อมูลและส่งคืนทีละขั้นตอน
การเขียนโปรแกรมฐานข้อมูลต้องตั้งค่าแหล่งข้อมูลก่อน ขั้นตอนในการตั้งค่าแหล่งข้อมูลใน ODBC มีดังนี้:
เปิดเครื่องมือการดูแลระบบในแผงควบคุม Windows สำหรับ Windows XP: เลือก "การบำรุงรักษาประสิทธิภาพ" >> "เครื่องมือการจัดการ" >> "แหล่งข้อมูล (ODBC)"; สำหรับ Windows 2000: เลือก "เครื่องมือการจัดการ" >> "แหล่งข้อมูล"
เปิด "แหล่งข้อมูล" กล่องโต้ตอบตัวจัดการแหล่งข้อมูล ODBC จะปรากฏขึ้น โดยแสดงชื่อแหล่งข้อมูลที่มีอยู่
เลือก "User DSN" คลิกปุ่ม "เพิ่ม" และกล่องโต้ตอบสำหรับการติดตั้งไดรเวอร์แหล่งข้อมูลจะปรากฏขึ้น เข้าถึงแหล่งข้อมูล (*.mdb) คลิกปุ่ม "เสร็จสิ้น" กล่องโต้ตอบ "สร้างแหล่งข้อมูลจะปรากฏขึ้น พิมพ์ชื่อแหล่งข้อมูลที่จะสร้าง และเลือกตารางฐานข้อมูลสำหรับแหล่งข้อมูลที่สร้างขึ้น
คลิกปุ่ม "เลือก" ในพื้นที่ฐานข้อมูลและเลือกตารางฐานข้อมูลที่ต้องการ เมื่อคุณต้องการอนุญาตระดับการเข้าถึงสำหรับแหล่งข้อมูล ให้คลิกปุ่มขั้นสูง หลังจากตั้งชื่อล็อกอินและรหัสผ่านแล้ว ให้คลิกปุ่ม "ตกลง" เพื่อกำหนดค่าฐานข้อมูล Access ในตัวจัดการ ODBC ให้เสร็จสิ้น
หากยังไม่มีตารางฐานข้อมูล คุณจะต้องสร้างขึ้นใหม่
แหล่งข้อมูลคือฐานข้อมูล หลังจากตั้งค่าแหล่งข้อมูลแล้ว โปรแกรม Java จำเป็นต้องเข้าถึงตารางฐานข้อมูลและสร้างบริดจ์ JDBC-ODBC เพื่อเชื่อมต่อโปรแกรมกับฐานข้อมูล หลังจากนั้นโปรแกรมสามารถส่งคำสั่ง SQL ไปยังฐานข้อมูลและประมวลผลผลลัพธ์ที่ส่งคืนโดยฐานข้อมูล การเชื่อมต่อฐานข้อมูล Java JDBC (การเชื่อมต่อ Java DataBase) ประกอบด้วยชุดของคลาสและอินเทอร์เฟซที่เขียนด้วยภาษา Java JDBC เป็น API สำหรับเชื่อมต่อโปรแกรม Java กับฐานข้อมูล โดยสามารถทำสามสิ่งต่อไปนี้: สร้างการเชื่อมต่อกับฐานข้อมูล ส่งคำสั่ง SQL ไปยังฐานข้อมูล และประมวลผลผลลัพธ์ที่ส่งคืนโดยฐานข้อมูล
การเรียกเมธอดคลาส Class.forName(String s) สามารถสร้างบริดจ์ JDBC-ODBC ได้ ตัวอย่างเช่น รหัส:
ลอง { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }catch(ข้อยกเว้น e){}
มีการโหลดไดรเวอร์สำหรับโปรแกรม Java
[ตัวอย่าง] อธิบายวิธีการเชื่อมต่อฐานข้อมูลโดยระบุ URL ชื่อผู้ใช้ และรหัสผ่าน หากการเชื่อมต่อสำเร็จ ไม่สำเร็จก็จะส่งคืนค่าว่างเปล่า
การเชื่อมต่อแบบคงที่สาธารณะ ConnectByjdbcOdbc (URL ของสตริง, ชื่อผู้ใช้สตริง, รหัสผ่านสตริง) { การเชื่อมต่อ con = null; ลอง { Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver"); // โหลดไดรเวอร์ ODBC} catch (ข้อยกเว้น e) { e .printStackTrace(); return null; //Connection failed} ลอง{ con = DriverManager.getConnection(url, ชื่อผู้ใช้, รหัสผ่าน) catch (SQLExceotuib e) { e.printStackTrace (); return null; // การเชื่อมต่อไม่สำเร็จ} return con;
รหัสต่อไปนี้เป็นการเรียกไปยังเมธอด ConnectByJdbcOdbc() หากการเชื่อมต่อฐานข้อมูลสำเร็จ หน้าต่างข้อมูลการเชื่อมต่อฐานข้อมูลที่สำเร็จจะปรากฏขึ้น มิฉะนั้น หน้าต่างข้อมูลการเชื่อมต่อฐานข้อมูลที่ไม่สำเร็จจะปรากฏขึ้น
if ((con = ConnectByJdbcOdbc("jdbc:odbc:redsun", "xia", "1234")) != null){ JoptionPane.showMessageDialog(null, "การเชื่อมต่อฐานข้อมูลสำเร็จ"); ลอง{ con.close(); con = null; } catch (SOLException e){}} มิฉะนั้น JOptionPane.showMessageDialog(null, "การเชื่อมต่อฐานข้อมูลล้มเหลว");
ใช้ไดรเวอร์ Java JDBC แท้เพื่อเชื่อมต่อกับฐานข้อมูล
โปรแกรม Java ยังสามารถใช้ไดรเวอร์ Java JDBC บริสุทธิ์เพื่อเชื่อมต่อกับฐานข้อมูล วิธีการนี้ใช้กันอย่างแพร่หลาย แต่จำเป็นต้องดาวน์โหลดแพ็คเกจไดรเวอร์ที่เกี่ยวข้อง เนื่องจากรหัสการเชื่อมต่อของฐานข้อมูลที่แตกต่างกันอาจแตกต่างกัน และไดรเวอร์ที่โหลดอาจแตกต่างกันเมื่อเชื่อมต่อกับฐานข้อมูลที่แตกต่างกัน ตัวอย่างเช่น ไดรเวอร์สำหรับเชื่อมต่อกับ SQL Server จะถูกดาวน์โหลดจากเว็บไซต์ www.msdn.com มีแพ็คเกจสามแพ็คเกจ: msbase.jar, mssqlserver.jar และ msutil.jar และแพ็คเกจทั้งสามนี้จำเป็นต้องวางใน jdk/ jre/lib/ext/ ไดเร็กทอรี หรือตั้งค่าตำแหน่งใน CLASSPATH
กระบวนการใช้ไดรเวอร์ Java JDBC แท้เพื่อเชื่อมต่อกับฐานข้อมูลมีดังนี้:
โหลดไดร์เวอร์. มีสองวิธีในการโหลดไดรเวอร์:
วิธีหนึ่งคือการเพิ่มไดรเวอร์ให้กับคุณสมบัติ jdbc.drivers ของ java.lang.System นี่คือรายการชื่อคลาสไดรเวอร์ที่โหลดโดยคลาส DriverManager คั่นด้วยเครื่องหมายโคลอน
อีกวิธีหนึ่งคือการใช้วิธี Class.forName() เพื่อโหลดไดรเวอร์ที่ระบุในโปรแกรมหลังจากดาวน์โหลดไดรเวอร์จากเว็บไซต์ที่เกี่ยวข้อง ตัวอย่างเช่น:
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
สร้าง URL สำหรับฐานข้อมูลที่ระบุ ออบเจ็กต์ URL ของฐานข้อมูลคล้ายกับตัวระบุตำแหน่งทรัพยากรแบบเดียวกันของเครือข่าย และมีรูปแบบดังนี้:
jdbc:subProtocol:subName://hostname:port:Databasename=XXX
ในหมู่พวกเขา subprotocol เป็นกลไกการเชื่อมต่อฐานข้อมูลที่ได้รับการสนับสนุนโดยไดรเวอร์บางตัว subName คือชื่อเฉพาะภายใต้กลไกการเชื่อมต่อปัจจุบัน hostName คือชื่อโฮสต์ พอร์ตคือพอร์ตการเชื่อมต่อที่สอดคล้องกัน DatabaseName คือชื่อของฐานข้อมูลที่จะเชื่อมต่อ ตัวอย่างเช่น รหัสต่อไปนี้อาจเป็น URL ของฐานข้อมูล:
jdbc:Microsoft:sqlserver://localhost:1433;ชื่อฐานข้อมูล=ksinfo
คำอธิบาย URL ของฐานข้อมูลใช้กลไกที่ได้รับจาก Miscrosoft และใช้ไดรเวอร์ sqlserve เพื่อเข้าถึงฐานข้อมูล ksInfo บนเครื่องท้องถิ่นผ่านพอร์ต 1433
สร้างการเชื่อมต่อ เมธอด getConnection() ของ DriverManager สร้างการเชื่อมต่อ
[ตัวอย่าง] อธิบายวิธีการคงที่ที่เชื่อมต่อกับฐานข้อมูล วิธีนี้จะเชื่อมต่อกับฐานข้อมูลตาม URL ฐานข้อมูล ชื่อผู้ใช้ และรหัสผ่านที่กำหนด หากการเชื่อมต่อสำเร็จ วิธีการนี้จะคืนค่าเป็นจริง มันจะคืนค่าเท็จ
การเชื่อมต่อแบบคงที่สาธารณะ conectByJdbc (URL สตริง, ชื่อผู้ใช้สตริง, รหัสผ่านสตริง) { การเชื่อมต่อ con = null; ลอง { Class.forName ( // โหลดไดรเวอร์เฉพาะ "com.microsoft.jdbc.sqlserver.SQLServerDriver" } catch (ข้อยกเว้น e ){ e.printStackTrace(); return null; //Connection failed} ลอง{ con = DriverManage.getConnection(url, ชื่อผู้ใช้, รหัสผ่าน); } (SQLException e) { e.printStackTrace (); return null; // การเชื่อมต่อล้มเหลว} return con;