JDBC LÀ GÌ

  -  

JDBC là viết tắt của Java Database Connectivity, nó là 1 API chất nhận được chúng ta thi công phần đông áp dụng rất có thể truy cập, thao tác với khá nhiều nhiều loại database khác nhau. Trong nội dung bài viết này, bản thân sẽ trình bày cùng với chúng ta hầu như kỹ năng và kiến thức cơ bản về JDBC các bạn nhé!

OK,

Thứ nhất, bản thân sẽ khởi tạo new một Maven project để triển khai ví dụ minch hoạ:

*

JDBC hỗ trợ mang đến chúng ta một chiếc nhìn tổng thể về kết nối database, thực thi câu lệnh SQL cùng cách xử trí hiệu quả trả về. Nó bao gồm các interface với từng interface đã phụ trách một phương châm khác nhau.

Bạn đang xem: Jdbc là gì

Có tứ interfaces bao gồm của JDBC bên trong package java.sql đó là: DriverConnection, Statement, ResultSet. Các loại database không giống nhau nhỏng MySquốc lộ, Oracle, … đang nhờ vào các interface này nhằm hiện tại những đối tượng người tiêu dùng cho cân xứng cùng với các loại database đó. Tập đúng theo các đối tượng người dùng lúc này này bọn họ Hotline chúng là phần lớn JDBC Driver. Mỗi database đang cung cấp JDBC Driver khác nhau với được gói gọn thành phần nhiều tập tin .jar.

Trong project trên, mình đã thêm MySquốc lộ Driver dependency:


XHTML
mysql mysql-connector-java 6.0.6
1
2
3
4
5
mysql
mysql-connector-java
6.0.6

bởi bản thân đã dùng MySQL database để minc hoạ mang lại bài viết này.

Bây tiếng bản thân sẽ tạo bắt đầu database để làm ví dụ nhé các bạn.

Mình sẽ sở hữu được 2 bảng đựng công bố của lớp học cùng đều công bố về đông đảo sinch viên của rất nhiều lớp học kia. Cụ thể cấu trúc của 2 bảng vẫn nlỗi sau:


MySQL
CREATE TABLE `clazz` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(45) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
1
2
3
4
5
CREATE TABLE `clazz` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(45) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Java
CREATE TABLE `students` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(45) NOT NULL, `code` varchar(10) NOT NULL, `date_of_birth` datetime DEFAULT NULL, `email` varchar(100) DEFAULT NULL, `clazz_id` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `student_clazz_idx` (`clazz_id`), CONSTRAINT `student_clazz` FOREIGN KEY (`clazz_id`) REFERENCES `clazz` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE=InnoDB DEFAULT CHARSET=utf8;
1
2
3
4
5
6
7
8
9
10
11
CREATE TABLE `students` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(45) NOT NULL,
`code` varchar(10) NOT NULL,
`date_of_birth` datetime DEFAULT NULL,
`email` varchar(100) DEFAULT NULL,
`clazz_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `student_clazz_idx` (`clazz_id`),
CONSTRAINT `student_clazz` FOREIGN KEY (`clazz_id`) REFERENCES `clazz` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Mình vẫn thêm một số tài liệu để bản thân hoàn toàn có thể dùng JDBC truy vấn vấn, thao tác làm việc bên trên đầy đủ tài liệu này.

Xem thêm: Bidv Online Và Bidv Smart Banking Khác Nhau Như Thế Nào, Các Dịch Vụ Ngân Hàng Điện Tử Của Bidv

*

OK, hiện thời chúng ta đã bước đầu viết code nhé!

Điều trước tiên họ đề nghị làm là thiết lập liên kết thân áp dụng của chúng ta cùng với database.

Interface DriverManager để giúp đỡ bọn họ làm cho điều này!

Các JDBC Driver Khi ứng dụng chạy sẽ tự đăng ký chính nó với DriverManager cùng tự đối tượng DriverManager bạn cũng có thể đem được đối tượng người tiêu dùng Connection cất liên kết mang đến database cho nên việc cấu hình thiết lập kết nối giữa ứng dụng của bọn họ mang đến database đang thuận tiện.

ví dụ như ở đây bản thân sử dụng MySquốc lộ thì lớp hiện nay interface của MySquốc lộ Driver là com.mysql.cj.jdbc.Driver. Nếu chúng ta mlàm việc code của lớp này xem các bạn sẽ thấhệt như sau

*

Nlỗi chúng ta thấy, đối tượng người tiêu dùng Driver của MySQL Driver sẽ có một đoạn code bên trong khối hận static nhằm ĐK thiết yếu nó với DriverManager. Việc của họ là cần phải knhì báo JDBC Driver như thế nào nhưng bọn họ đề nghị áp dụng mà thôi.

Xem thêm: Đá Ruby Nhân Tạo - 260 Đá Ruby Ý Tưởng

Mình xin nói thêm là cùng với JDBC phiên bản 3.0 hoặc cũ rộng, bọn họ cần được call Class.forName() với truyền vào thủ tục forName() tên lớp lúc này interface Driver của JDBC Driver kia nhằm hoàn toàn có thể áp dụng JDBC Driver.