Kết nối cơ sở dữ liệu Java

Bạn biết những điều cơ bản của SQL. Điều này là tốt. Nhưng hôm nay bạn sẽ cảm thấy tốt hơn nữa. Hôm nay bạn sẽ bắt đầu học cách làm việc với cơ sở dữ liệu từ một ứng dụng Java.

Có rất nhiều DBMS khác nhau, vì vậy những người tạo ra Java đã quyết định tiêu chuẩn hóa cách một ứng dụng Java hoạt động với cơ sở dữ liệu. Và họ gọi tiêu chuẩn này là - JDBC : Java DataBase Connectivity .

JDBC có 3 giao diện chính:

  • Kết nối - chịu trách nhiệm kết nối với cơ sở dữ liệu
  • Tuyên bố - chịu trách nhiệm truy vấn cơ sở dữ liệu
  • ResultSet - chịu trách nhiệm về kết quả của truy vấn cơ sở dữ liệu

Trong thực tế, đó là tất cả. Và chúng tôi thậm chí sẽ không học tất cả các phương thức của tất cả các giao diện. Chỉ những ví dụ đang hoạt động, mà chúng ta sẽ dần dần làm phức tạp.

JDBC tương tự như làm việc với servlet. Những người tạo ra JDBC đã viết một số giao diện và tự hào gọi nó là Java DataBase API. Và việc triển khai các giao diện này được giao cho ... những người tạo ra DBMS. Làm thế nào nó được thực hiện ở đó - không ai quan tâm. Hoạt động tốt.

Có bốn phiên bản của JDBC và chúng tôi sẽ xem xét phiên bản mới nhất. Và không phải vì cô ấy là người tuyệt vời nhất, mà bởi vì cô ấy là người đơn giản nhất.

Trình quản lý trình điều khiển JDBC

Ứng dụng Java và cơ sở dữ liệu giao tiếp với nhau thông qua một thư viện gọi là Trình điều khiển JDBC. Đây là một tập hợp các lớp triển khai API JDBC cho một DBMS cụ thể.

Trình điều khiển JDBC chính xác được chọn bằng cách sử dụng một lớp có tên là DriverManager . Tương tác của chúng có thể được biểu diễn như sau:

Vấn đề là, bạn có thể sử dụng In-Memory-DB, No-SQL-DB hoặc thậm chí là cơ sở dữ liệu được tích hợp trong ứng dụng Android. Là một nhà phát triển Java, những sắc thái này hoàn toàn không liên quan đến bạn. Trình quản lý Trình điều khiển sẽ chọn đúng trình điều khiển JDBC cho bạn và mọi thứ sẽ hoạt động như đồng hồ.

Nhân tiện, làm thế nào để anh ấy làm điều đó?

Kết nối với máy chủ MySQL

Hãy nhớ những gì bạn cần để kết nối với máy chủ SQL cục bộ thông qua MySQL Workbench? Nếu tôi quên, thì tôi nhắc bạn, bạn cần ba điều:

  • chủ nhà
  • đăng nhập
  • mật khẩu

Mọi thứ đều rõ ràng với thông tin đăng nhập và mật khẩu, và máy chủ lưu trữ, nếu bạn còn nhớ, là tên của máy tính đặt máy chủ. Nếu nó nằm trên máy tính cục bộ của bạn, thì bạn cần chỉ định localhost làm tên máy chủ. Nếu nó không phải là địa phương thì sao?

Sau đó, bạn cần sử dụng ... URL. URL là viết tắt của Universal Resource Locator . Nó có thể được sử dụng để chỉ định vị trí của bất kỳ thứ gì trên mạng: trang web, máy in, máy chủ SQL. Trên thực tế, URL cũng được sử dụng để truy cập máy chủ SQL cục bộ. Nó trông giống như thế này:

mysql://localhost:3306/db_scheme
  • mysql là một giao thức máy chủ
  • localhost - tên máy chủ trên mạng
  • 3306 - cổng mà các yêu cầu được thực hiện
  • db_scheme - tên lược đồ (tên cơ sở dữ liệu)

Ghi chú. Tên cơ sở dữ liệu có thể được bỏ qua. Nhưng nếu máy chủ lưu trữ nhiều lược đồ cơ sở dữ liệu, thì thường những người dùng khác nhau và các quyền truy cập khác nhau sẽ được tạo cho họ. Và nếu người dùng mà bạn đăng nhập vào máy chủ SQL không có quyền truy cập vào tất cả các cơ sở dữ liệu, thì bạn chắc chắn cần chỉ định tên của cơ sở dữ liệu cụ thể mà bạn có quyền truy cập.

Ở cuối url này có thể có nhiều tham số, kiểu mã hóa, múi giờ, được coi là tham số cho kết nối cơ sở dữ liệu mới được thiết lập.

Ngoài ra, giao thức có thể được tổng hợp. Nếu tất cả giao tiếp với máy chủ cơ sở dữ liệu qua một kênh được mã hóa bằng giao thức SSH, thì URL có thể được chỉ định như sau:

ssh:mysql://localhost:3306/db_scheme

Một giao thức không nhất thiết phải là một chương trình bên ngoài. Ví dụ: nếu bạn đang làm việc với một máy chủ sử dụng giao thức JNDI, bạn có thể chỉ định nó như sau:

jndi:mysql://localhost:3306/db_scheme

Và nếu bạn muốn làm việc bằng giao thức API JDBC, thì bạn cần viết như sau:

jdbc:mysql://localhost:3306/db_scheme

Khi bạn cố gắng tạo một kết nối cơ sở dữ liệu, Trình quản lý trình điều khiển JDBC sẽ phân tích cú pháp SQL-db-URL của bạn và xác định tên trình điều khiển JDBC từ tên giao thức. Đây là một thủ thuật nhỏ.