การเชื่อมต่อฐานข้อมูล Java

คุณรู้พื้นฐานของ SQL ดีจัง. แต่วันนี้คุณจะรู้สึกดีขึ้น วันนี้คุณจะได้เริ่มเรียนรู้วิธีการทำงานกับฐานข้อมูลจากแอปพลิเคชัน Java

มี DBMS ที่แตกต่างกันมากมาย ดังนั้นผู้สร้าง Java จึงตัดสินใจสร้างมาตรฐานวิธีที่แอปพลิเคชัน Java ทำงานร่วมกับฐานข้อมูล และพวกเขาเรียกมาตรฐานนี้ว่าJDBC : Java DataBase Connectivity

JDBC มี 3 อินเทอร์เฟซหลัก:

  • การเชื่อมต่อ - รับผิดชอบในการเชื่อมต่อกับฐานข้อมูล
  • คำชี้แจง - รับผิดชอบในการสอบถามฐานข้อมูล
  • ResultSet - รับผิดชอบผลลัพธ์ของแบบสอบถามไปยังฐานข้อมูล

ในความเป็นจริงนั่นคือทั้งหมด และเราจะไม่เรียนรู้วิธีการทั้งหมดของอินเทอร์เฟซทั้งหมดด้วยซ้ำ ตัวอย่างการทำงานเท่านั้นซึ่งเราจะค่อยๆซับซ้อน

JDBC ค่อนข้างคล้ายกับการทำงานกับเซิร์ฟเล็ต ผู้สร้าง JDBC ได้เขียนอินเทอร์เฟซต่างๆ และภูมิใจเรียกมันว่า Java DataBase API และการใช้งานอินเทอร์เฟซเหล่านี้ถูกกำหนดให้กับ ... ผู้สร้าง DBMS มันถูกนำไปใช้อย่างไร - ไม่มีใครสนใจ ทำงานได้ดี

JDBC มีสี่เวอร์ชันและเราจะดูเวอร์ชันล่าสุด และไม่ใช่เพราะเธอเจ๋งที่สุด แต่เพราะเธอเป็นคนเรียบง่ายที่สุด

ผู้จัดการไดรเวอร์ JDBC

แอปพลิเคชัน Java และฐานข้อมูลสื่อสารระหว่างกันผ่านไลบรารีที่เรียกว่า JDBC Driver นี่คือชุดของคลาสที่ใช้ JDBC API สำหรับ DBMS เฉพาะ

ไดรเวอร์ JDBC ที่ถูกต้องถูกเลือกโดยใช้คลาสชื่อDriverManager ปฏิสัมพันธ์ของพวกเขาสามารถแสดงได้ดังนี้:

ประเด็นก็คือ คุณสามารถใช้ In-Memory-DB, No-SQL-DB หรือแม้แต่ฐานข้อมูลที่สร้างขึ้นในแอพ Android ในฐานะผู้พัฒนา Java ความแตกต่างเหล่านี้ไม่เกี่ยวกับคุณเลย ตัวจัดการไดรเวอร์จะเลือกไดรเวอร์ JDBC ที่ถูกต้องให้คุณและทุกอย่างจะทำงานเหมือนเครื่องจักร

โดยวิธีการที่เขาทำได้อย่างไร?

กำลังเชื่อมต่อกับเซิร์ฟเวอร์ MySQL

จำสิ่งที่จำเป็นในการเชื่อมต่อกับเซิร์ฟเวอร์ SQL ภายในเครื่องผ่าน MySQL Workbench ได้หรือไม่ ถ้าฉันลืม ฉันขอเตือนคุณว่าคุณต้องการสามสิ่ง:

  • เจ้าภาพ
  • เข้าสู่ระบบ
  • รหัสผ่าน

ทุกอย่างชัดเจนด้วยการเข้าสู่ระบบและรหัสผ่านและโฮสต์ถ้าคุณจำได้คือชื่อของคอมพิวเตอร์ที่เซิร์ฟเวอร์ตั้งอยู่ หากอยู่ในเครื่องคอมพิวเตอร์ของคุณ คุณต้องระบุ localhost เป็นชื่อโฮสต์ ถ้าไม่ใช่คนท้องถิ่นล่ะ?

จากนั้นคุณต้องใช้ ... URL URL ย่อมาจาก Universal Resource Locator สามารถใช้ระบุตำแหน่งของสิ่งใดก็ได้บนเครือข่าย: ไซต์ เครื่องพิมพ์ เซิร์ฟเวอร์ SQL ในความเป็นจริง URL ยังใช้เพื่อเข้าถึงเซิร์ฟเวอร์ SQL ภายในเครื่อง ดูเหมือนว่า:

mysql://localhost:3306/db_scheme
  • mysqlเป็นโปรโตคอลเซิร์ฟเวอร์
  • localhost - ชื่อโฮสต์บนเครือข่าย
  • 3306 - พอร์ตที่มีการร้องขอ
  • db_scheme - ชื่อสคีมา (ชื่อฐานข้อมูล)

บันทึก. ชื่อฐานข้อมูลสามารถละเว้นได้ แต่ถ้าเซิร์ฟเวอร์จัดเก็บสคีมาฐานข้อมูลจำนวนมาก โดยปกติแล้วผู้ใช้ที่แตกต่างกันและสิทธิ์การเข้าถึงที่แตกต่างกันจะถูกสร้างขึ้นสำหรับพวกเขา และหากผู้ใช้ที่คุณลงชื่อเข้าใช้เซิร์ฟเวอร์ SQL ไม่สามารถเข้าถึงฐานข้อมูลทั้งหมดได้ คุณจะต้องระบุชื่อของฐานข้อมูลเฉพาะที่คุณสามารถเข้าถึงได้อย่างแน่นอน

ที่ส่วนท้ายของ URL นี้อาจมีพารามิเตอร์ต่างๆ ประเภทการเข้ารหัส เขตเวลา ซึ่งถือเป็นพารามิเตอร์สำหรับการเชื่อมต่อฐานข้อมูลใหม่ที่ถูกสร้างขึ้น

นอกจากนี้ โปรโตคอลยังสามารถประกอบเข้าด้วยกันได้ หากการสื่อสารทั้งหมดกับเซิร์ฟเวอร์ฐานข้อมูลผ่านช่องทางที่เข้ารหัสโดยใช้โปรโตคอล SSH สามารถระบุ URL ได้ดังนี้:

ssh:mysql://localhost:3306/db_scheme

โปรโตคอลไม่จำเป็นต้องเป็นโปรแกรมภายนอก ตัวอย่างเช่น หากคุณกำลังทำงานกับเซิร์ฟเวอร์โดยใช้โปรโตคอล JNDI คุณสามารถระบุได้ดังนี้:

jndi:mysql://localhost:3306/db_scheme

และถ้าคุณต้องการทำงานโดยใช้โปรโตคอล JDBC API คุณต้องเขียนดังนี้:

jdbc:mysql://localhost:3306/db_scheme

เมื่อคุณพยายามสร้างการเชื่อมต่อฐานข้อมูล JDBC Driver Manager จะแยกวิเคราะห์ SQL-db-URL ของคุณและกำหนดชื่อไดรเวอร์ JDBC จากชื่อโปรโตคอล นี่คือเคล็ดลับเล็กน้อย