Giao diện để truy cập cơ sở dữ liệu quan hệ từ Java là Java Database Connectivity [JDBC]. Thông qua JDBC, bạn tạo kết nối đến cơ sở dữ liệu, đưa ra các truy vấn cơ sở dữ liệu và cập nhật cũng như nhận kết quả
JDBC cung cấp một giao diện cho phép bạn thực hiện các thao tác SQL một cách độc lập với phiên bản của cơ sở dữ liệu được sử dụng. Để sử dụng JDBC, bạn cần triển khai cơ sở dữ liệu cụ thể của trình điều khiển JDBC
Để tìm hiểu cách cài đặt và sử dụng MySQL, vui lòng xem MySQL - Tutorial
Mô tả sau đây sẽ giả định rằng bạn đã cài đặt thành công MySQL và biết cách truy cập MySQL thông qua dòng lệnh
Để kết nối với MySQL từ Java, bạn phải sử dụng trình điều khiển JDBC từ MySQL. Trình điều khiển MySQL JDBC được gọi là MySQL Connector/J. Bạn tìm thấy trình điều khiển MySQL JDBC mới nhất theo URL sau. http. // nhà phát triển. mysql. com/tải xuống/trình kết nối/j
Bản tải xuống chứa tệp JAR
mà chúng tôi yêu cầu sau này
Trong bài tập này, bạn tạo một cơ sở dữ liệu mới, một người dùng mới và một bảng ví dụ. Đối với điều này, hãy kết nối với máy chủ MySQL thông qua ứng dụng khách dòng lệnh mysql
Tạo một cơ sở dữ liệu mới gọi là phản hồi và bắt đầu sử dụng nó bằng lệnh sau
create database feedback;
use feedback;
Tạo người dùng bằng lệnh sau
CREATE USER sqluser IDENTIFIED BY 'sqluserpw';
grant usage on *.* to sqluser@localhost identified by 'sqluserpw';
grant all privileges on feedback.* to sqluser@localhost;
Bây giờ hãy tạo một bảng cơ sở dữ liệu mẫu với nội dung ví dụ thông qua câu lệnh SQL sau
CREATE TABLE comments [
id INT NOT NULL AUTO_INCREMENT,
MYUSER VARCHAR[30] NOT NULL,
EMAIL VARCHAR[30],
WEBPAGE VARCHAR[100] NOT NULL,
DATUM DATE NOT NULL,
SUMMARY VARCHAR[40] NOT NULL,
COMMENTS VARCHAR[400] NOT NULL,
PRIMARY KEY [ID]
];
INSERT INTO comments values [default, 'lars', 'myemail@gmail.com','//www.vogella.com/', '2009-09-14 10:33:11', 'Summary','My first comment' ];
Tạo một dự án Java và một gói có tên de. vogella. mysql. đầu tiên
Tạo thư mục lib
và sao chép trình điều khiển JDBC vào thư mục này. Thêm trình điều khiển JDBC vào đường dẫn lớp của bạn. Xem để biết chi tiết
Tạo lớp sau để kết nối với cơ sở dữ liệu MySQL và thực hiện các truy vấn, chèn và xóa. Nó cũng in siêu dữ liệu [tên bảng, tên cột] của kết quả truy vấn
Trong ví dụ này, chúng tôi đang sử dụng MySql làm cơ sở dữ liệu. Vì vậy, chúng ta cần biết các thông tin sau cho cơ sở dữ liệu mysql
- hạng lái xe. Lớp trình điều khiển cho cơ sở dữ liệu mysql là com. mysql. jdbc. Người lái xe
- URL kết nối. URL kết nối cho cơ sở dữ liệu mysql là jdbc. mysql. //máy chủ cục bộ. 3306/sonoo trong đó jdbc là API, mysql là cơ sở dữ liệu, localhost là tên máy chủ mà mysql đang chạy, chúng tôi cũng có thể sử dụng địa chỉ IP, 3306 là số cổng và sonoo là tên cơ sở dữ liệu. Chúng tôi có thể sử dụng bất kỳ cơ sở dữ liệu nào, trong trường hợp như vậy, chúng tôi cần thay thế sonoo bằng tên cơ sở dữ liệu của mình
- tên tài khoản. Tên người dùng mặc định cho cơ sở dữ liệu mysql là root
- Mật khẩu. Nó là mật khẩu do người dùng cung cấp tại thời điểm cài đặt cơ sở dữ liệu mysql. Trong ví dụ này, chúng ta sẽ sử dụng root làm mật khẩu
Trước tiên chúng ta hãy tạo một bảng trong cơ sở dữ liệu mysql, nhưng trước khi tạo bảng, chúng ta cần tạo cơ sở dữ liệu trước
Ví dụ để kết nối ứng dụng Java với cơ sở dữ liệu mysql
Trong ví dụ này, sonoo là tên cơ sở dữ liệu, root là cả tên người dùng và mật khẩu
Ví dụ trên sẽ tìm nạp tất cả các bản ghi của bảng emp
Để kết nối ứng dụng java với cơ sở dữ liệu mysql, mysqlconnector. tập tin jar được yêu cầu để được tải
Hai cách để tải tệp jar
- Dán trình kết nối mysql. tệp jar trong thư mục jre/lib/ext
- Đặt đường dẫn lớp
1] Dán mysqlconnector. tệp jar trong thư mục JRE/lib/ext
Tải xuống trình kết nối mysql. tệp jar. Chuyển đến thư mục jre/lib/ext và dán tệp jar vào đây2] Đặt đường dẫn lớp
Có hai cách để đặt đường dẫn lớpCách đặt đường dẫn lớp tạm thời
mở dấu nhắc lệnh và viếtCách đặt đường dẫn lớp cố định
Chuyển đến biến môi trường, sau đó nhấp vào tab mới. Trong tên biến, ghi classpath và trong giá trị biến, dán đường dẫn đến mysqlconnector. jar bằng cách nối thêm mysqlconnector. cái lọ;. ; . \thư mục\mysql-connector-java-5. 0. 8 ngăn. cái lọ;. ;
MySQL là "Cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới" và cung cấp một cách mạnh mẽ, được sử dụng rộng rãi để lưu trữ và truy cập dữ liệu của bạn. Trên thực tế, nhiều cơ sở dữ liệu tại chỗ và đám mây [như MemSQL và Google Cloud SQL] đã sử dụng giao diện MySQL. Có sẵn một số trình điều khiển mã nguồn mở để kết nối với dữ liệu MySQL của bạn từ các ứng dụng khác
Bài viết này so sánh hiệu suất đọc và ghi của Trình kết nối MySQL gốc [JDBC và ODBC] và Trình điều khiển JDBC và ODBC của Phần mềm CData cho MySQL khi làm việc với bộ dữ liệu lớn hơn. Chúng tôi chỉ ra cách Trình điều khiển CData có thể đọc các tập dữ liệu lớn nhanh hơn khoảng 20% so với trình điều khiển gốc và ghi 1 triệu hàng nhanh hơn gần 40% so với trình điều khiển gốc
Dữ liệu
Để cung cấp một so sánh có thể lặp lại để đọc dữ liệu, chúng tôi đã sao chép các bài đánh giá sách Amazon của Hoa Kỳ từ bộ dữ liệu Đánh giá của khách hàng Amazon vào cơ sở dữ liệu MySQL. Dưới đây là thông tin chi tiết về bảng amazon_book_reviews
Kích thước bảngSố hàngSố cột9. 7 GB10,534,17915Hiệu suất đọc trình điều khiển JDBC
Mục tiêu chính của cuộc điều tra này là để so sánh hiệu suất liên quan của trình điều khiển JDBC. Chúng tôi đã làm điều này bằng cách chạy cùng một bộ truy vấn với mỗi trình điều khiển JDBC. Chúng tôi đã sử dụng các mệnh đề GIỚI HẠN để thay đổi kích thước của tập dữ liệu được trả về trong mỗi truy vấn, nhưng chúng tôi đã yêu cầu các cột giống nhau cho mỗi truy vấn
Truy vấn cơ sở
SELECT marketplace, customer_id, review_id, product_id, product_parent, product_title, product_category, star_rating, helpful_votes, total_votes, vine, verified_purchase, review_headline, review_body, review_date, FROM cdata.amazon_book_reviews;
Giới hạn theo truy vấn
- GIỚI HẠN 1000000
- Bộ dữ liệu đầy đủ
Để kiểm tra trình điều khiển, chúng tôi đã kết nối với MySQL bằng ứng dụng Java cơ bản và thực hiện lặp đi lặp lại các truy vấn trên. Các kết quả đã được đọc và lưu trữ trong một biến mới [dựa trên kiểu dữ liệu] cho mỗi cột trong mỗi hàng
1 [1.000.000 hàng]14. 02 [+26%]17. 672 [~10.000.000 hàng]171. 09 [+20. 7%]206. 42
Như có thể thấy trong kết quả, Trình điều khiển CData thường vượt trội so với Trình điều khiển MySQL gốc, phần lớn là do cách Trình điều khiển JDBC CData sử dụng tài nguyên phía máy khách
Sử dụng tài nguyên trình điều khiển JDBC
Trong khi kiểm tra hiệu suất đọc của các trình điều khiển JDBC, chúng tôi cũng đo mức sử dụng tài nguyên phía máy khách, cụ thể là xem xét bộ nhớ. Các biểu đồ bên dưới được tìm thấy bằng cách chạy một chương trình Java mẫu và sử dụng Java VisualVM để ghi lại mức sử dụng bộ nhớ. Chúng tôi đã sử dụng Java OpenJDK phiên bản 12. 0. 2 với kích thước heap tối đa là 8 Gigabyte
Để so sánh này, chúng tôi đã chạy truy vấn cho tập dữ liệu đầy đủ
Trình điều khiển CData
Trình điều khiển bản địa*
* Lưu ý sự thay đổi về tỷ lệ cho biểu đồ Heap
Trình điều khiển CData trung bình sử dụng khoảng 150 MB trong suốt thời gian chạy. Tuy nhiên, trình điều khiển gốc tiếp tục sử dụng ngày càng nhiều tài nguyên máy khách trong suốt thời gian chạy. Trên thực tế, chúng tôi đã phải đặt kích thước Heap tối đa thành 8 GB để Trình điều khiển MySQL gốc hoàn tất quá trình thực thi. Mặc dù thực tế là trình điều khiển gốc đang sử dụng nhiều tài nguyên hơn đáng kể, nhưng vẫn mất nhiều thời gian hơn để đọc dữ liệu so với trình điều khiển CData JDBC
Hiệu suất đọc trình điều khiển ODBC
Mục tiêu chính của cuộc điều tra này là so sánh hiệu suất liên quan của Trình điều khiển ODBC. Chúng tôi đã làm điều này bằng cách chạy cùng một bộ truy vấn với mỗi Trình điều khiển ODBC. Chúng tôi đã sử dụng các mệnh đề GIỚI HẠN để thay đổi kích thước của tập dữ liệu được trả về trong mỗi truy vấn, nhưng chúng tôi đã yêu cầu các cột giống nhau cho mỗi truy vấn
Truy vấn cơ sở
SELECT marketplace, customer_id, review_id, product_id, product_parent, product_title, product_category, star_rating, helpful_votes, total_votes, vine, verified_purchase, review_headline, review_body, review_date, FROM cdata.amazon_book_reviews;
Giới hạn theo truy vấn
- GIỚI HẠN 1000000
- Bộ dữ liệu đầy đủ
Để kiểm tra trình điều khiển, chúng tôi đã kết nối với MySQL bằng ứng dụng C++ cơ bản và thực hiện lặp đi lặp lại các truy vấn trên. Các kết quả đã được đọc và lưu trữ trong một biến mới [dựa trên kiểu dữ liệu] cho mỗi cột trong mỗi hàng
1 [1.000.000 hàng]14. 95 [+96. 7%]29. 402 [~10.000.000 hàng]177. 51 [+72. 3%]305. 77
Như có thể thấy trong kết quả, Trình điều khiển CData ODBC thường xuyên hoạt động tốt hơn Trình kết nối MySQL/ODBC, phần lớn là do sử dụng tốt hơn các tài nguyên máy khách có sẵn
Sử dụng tài nguyên trình điều khiển ODBC
Trong khi kiểm tra hiệu suất đọc của trình điều khiển ODBC, chúng tôi cũng đo mức sử dụng tài nguyên phía máy khách, xem xét cụ thể khả năng xử lý và băng thông mạng. Các biểu đồ bên dưới được tìm thấy bằng cách thực thi ứng dụng C++ đơn giản và sử dụng Windows Resource Monitor
Để so sánh này, chúng tôi đã chạy truy vấn cho tập dữ liệu đầy đủ
Trình điều khiển CData
Trình điều khiển bản địa
Cả hai trình điều khiển dường như sử dụng 20 - 25% khả năng xử lý có sẵn, với CData sử dụng nhiều hơn một chút. Sự khác biệt lớn hơn là ở băng thông mạng được sử dụng, trong đó Trình điều khiển CData sử dụng khoảng 250Mbps so với 100Mbps mà trình điều khiển gốc sử dụng
Thử thách hàng triệu
Ngoài việc đo hiệu suất đọc, chúng tôi cũng muốn so sánh hiệu suất ghi của các trình điều khiển. Nói tóm lại, Trình điều khiển JDBC CData MySQL có thể ghi 1 triệu hàng nhanh hơn gần 40% so với Trình kết nối MySQL gốc
Chúng tôi đã sử dụng một chương trình Java đơn giản để thêm các hàng vào bản sao của bảng amazon_book_reviews được tham chiếu ở trên. Để thử nghiệm, chúng tôi đã chèn dữ liệu vào 100 lô gồm 10.000 hàng
Mã mẫu
________số 8Kết quả
Phần kết luận
Trình điều khiển CData cung cấp khả năng truy vấn các tập dữ liệu lớn tốt hơn qua trình kết nối gốc, xử lý tập dữ liệu lớn nhất nhanh hơn ít nhất 20% bằng cách sử dụng tốt hơn các tài nguyên máy khách có sẵn
Khi nói đến việc chèn dữ liệu, Trình điều khiển CData nổi bật ở khả năng chèn nhanh các bộ dữ liệu lớn. Trình điều khiển CData JDBC có thể chèn 1 triệu hàng trong vòng chưa đầy 80 giây, nhanh hơn gần 40% so với trình kết nối gốc
Nhóm kỹ thuật của chúng tôi đã tối ưu hóa công cụ SQL của chúng tôi để chỉ ra rằng khả năng kết nối chỉ bị cản trở bởi lưu lượng truy cập dây và thời gian xử lý của máy chủ