JDBC là gì?

JDBC (Java Database Connectivity) là 1 trong những API chuẩn dùng để làm xúc tiến cùng với những nhiều loại cửa hàng tài liệu tình dục (database relationship). JDBC gồm 1 tập đúng theo các class với những interface sử dụng cho áp dụng Java hoàn toàn có thể giao tiếp cùng với những các đại lý dữ liệu (database) khác biệt.

Bạn đang xem: Kết nối java với mysql

*

DriverManager : là một trong class cai quản danh sách các Driver (database drivers). Các đề nghị kết nối từ vận dụng Java sẽ tiến hành class này tìm tìm Driver phù hợp trước tiên nhằm tùy chỉnh liên kết cùng với cửa hàng tài liệu.Driver: là 1 trong interface dùng để xử trí những tiếp xúc cùng với các đại lý dữ liệu. Thông thường ứng dụng Java sẽ không tiếp xúc thẳng với class này mà trải qua DriverManager.Connection : là 1 trong những interface cung ứng toàn bộ những method quan trọng mang đến việc giao tiếp với database. Interface này đựng được nhiều cách tiến hành đa dạng nhằm chế tác kết nối với cùng một Database. Tất cả những báo cáo giao tiếp cùng với đại lý dữ liệu chỉ có thể thông qua đối tượng Connection. Một Connection đại diện thay mặt cho 1 phiên (session) làm việc với cơ sở tài liệu.Statement : là 1 trong interface được cho phép gửi các câu lệnh SQL tới Database. Trong khi, một trong những Interface kết quá từ nó cung thêm những tđam mê số để xúc tiến những giấy tờ thủ tục đã làm được tàng trữ (stored procedure).ResultSet : thay mặt đại diện mang lại tập đúng theo những bản ghi (record) giành được sau khoản thời gian triển khai truy nã vấn (query).SQLException : class này xử lý bất cứ lỗi làm sao xuất hiện trong khi thao tác với Database.

Kết nối database với Java JDBC

Để thao tác làm việc cùng với JDBC, bạn cần thiết đặt Java và một cơ sở dữ liệu (database). Bạn có thể thực hiện bất kỳ database như thế nào, chẳng hạn MySQL.

Nhỏng vẫn reviews ngơi nghỉ trên, để làm việc với đại lý tài liệu từ bỏ Java cần phải có Driver. Trong JDBC API, họ gồm java.sql.Driver, đây là một interface gồm sẵn vào JDK. Mỗi hệ quản ngại trị cần cài đặt một Driver riêng khớp ứng cùng với cửa hàng dữ liệu kia. do vậy công việc rất cần phải làm là tải về thỏng viện Driver ứng cùng với một số loại Database mong ước áp dụng.

Download Driver

Oracle Database JDBC Driver

Truy ctràn vào link: https://www.oracle.com/database/technologies/jdbcdriver-ucp-downloads.html

Chọn phiên bản ojdbc.jar tương xứng với phiên phiên bản áp dụng. Chẳng hạn ojdbc6.jar thực hiện đến JDK8, JDK7, và JDK6.

Nếu sử dụng maven project, những bạn cũng có thể add dependency tương ứng sinh hoạt link sau: https://mvnrepository.com/artifact/com.oracle.jdbc

com.oracle.jdbc ojdbc14 12.2.0.1MySQL Database JDBC DriverCác chúng ta thêm maven dependency hoặc tải về gói jar tương xứng trên đây: https://mvnrepository.com/artifact/mysql/mysql-connector-java

mysql mysql-connector-java 8.0.17SQL Server (JTDS) Database JDBC DriverCác bạn thêm maven dependency hoặc tải về gói jar tương ứng tại đây: https://mvnrepository.com/artifact/net.sourceforge.jtds/jtds

net.sourceforge.jtds jtds 1.3.1PostgreSquốc lộ Database JDBC DriverCác các bạn thêm maven dependency hoặc tải về gói jar tương xứng trên đây: https://mvnrepository.com/artifact/org.postgresql/postgresql

org.postgresql postgresql 42.2.7MariaDB Database JDBC DriverCác chúng ta thêm maven dependency hoặc download gói jar tương xứng trên đây: https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client

org.mariadb.jdbc mariadb-java-client 2.4.4MongoDB Database JDBC DriverCác các bạn thêm maven dependency hoặc tải về gói jar khớp ứng trên đây: https://mvnrepository.com/artifact/org.mongodb/mongo-java-driver

org.mongodb mongo-java-driver 3.11.0

Kết nối database tự Java

Các bước giao tiếp giữa công tác Java cùng Database:

Load Driver.Tạo liên kết (Open Connection).Tạo câu lệnh truy vấn SQL (Statement).Thực thi câu lệnh tầm nã vấn SQL (Exedễ thương Query).Đóng liên kết (Cthua kém Connection).Load Driver

Để liên kết cùng với database, bọn họ nên load driver và register nó cùng với vận dụng. Có 2 phương pháp để thực hiện:

Class.forName() : load class Driver trong memory tại thời điểm runtime. Để đăng ký Điện thoại tư vấn pmùi hương thức: Class.forName(“driverName”);DriverManager.registerDriver() : DriverManager là class có sẵn trong Java. Để đăng ký Hotline phương thức: DriverManager.registerDriver(new DriverName());

Chẳng hạn nhằm kết nối với MySQL database, ta ĐK như sau:

Class.forName("com.mysql.jdbc.Driver");// OrDriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());Tạo kết nối (xuất hiện Connection)Sau lúc vẫn load Driver, bọn họ tạo nên connection:

DriverManager.getConnection(connectionURL);// OrDriverManager.getConnection(connectionURL, userName, password);ví dụ như với MySQL:

// PatternString connectionURL = "jdbc:mysql://hostname:port/dbname";// ExampleString connectionURL = "jdbc:mysql://hostname:3306/jdbcdemo";Connection nhỏ = DriverManager.getConnection(connectionURL, username, password);Tạo câu lệnh truy hỏi vấn SQL (Statement)Sau lúc một liên kết được cấu hình thiết lập, bạn có thể ảnh hưởng cùng với đại lý dữ liệu.

Các interface JDBCStatement, CallableStatement với PreparedStatement xác minh những phương thức có thể chấp nhận được gửi những lệnh Squốc lộ và thừa nhận tài liệu trường đoản cú các đại lý tài liệu.

Statement st = nhỏ.createStatement();Thực thi câu lệnh truy hỏi vấn SQL (Execute Query)Bây giờ đồng hồ cho phần quan trọng đặc biệt nhất, sẽ là triển khai câu lệnh truy vấn Squốc lộ (exedễ thương query). Nhỏng bọn họ biết, hoàn toàn có thể có khá nhiều loại truy hỏi vấn. Một trong những kia là:

Truy vấn nhằm update (update) / cnhát (insert)/ xóa (delete) trong đại lý tài liệu.Truy vấn để mang dữ liệu (select).

Statement hỗ trợ một số cách thức nhằm thực hiện truy nã vấn SQL khớp ứng với các nhiều loại trên:

Phương thức execQuery() : được sử dụng nhằm thực hiện những tầm nã vấn truy hỏi xuất quý hiếm tự các đại lý tài liệu (select). Phương thơm thức này trả về đối tượng người tiêu dùng ResultSet có thể được sử dụng để lấy toàn bộ các dữ liệu (record) của bảng.Phương thức execUpdate() : được áp dụng nhằm tiến hành các tróc nã vấn insert/ update/ delete.Phương thơm thức execute() : rất có thể tiến hành cả hai trường phù hợp bên trên. Nếu thủ tục statement.getUpdateCount() trả về con số record bị affect.Nếu quý hiếm > 0, Tức là thực hiện các câu lệnh insert/ update/ delete.Nếu giá trị = 0, Có nghĩa là xúc tiến những câu lệnh insert/ update/ delete không tồn tại loại nào bị tác động hoặc thực thi câu lệnh update data structure.Nếu quý hiếm = -1, tức là thực thi câu lệnh select. Lúc đó, hoàn toàn có thể Điện thoại tư vấn tiếp lệnh statement.getResultSet() để lấy ResultSet.

Ví dụ:

int numberRowsAffected = st.executeUpdate(sqlInsert);if (numberRowsAffected == 0) System.out.println("insertion failed"); else System.out.println("inserted successfully : " + sqlInsert);Đóng kết nối (Cthảm bại Connection)Cuối cùng, sau khoản thời gian sẽ áp dụng bọn họ cần phải gọi cách tiến hành close() để đóng góp liên kết (Connection) với giải pngóng tài nguyên ổn.

Bằng bí quyết đóng liên kết, các đối tượng của Statement cùng ResultSet sẽ được đóng góp auto. Tuy nhiên, bọn họ cần tập thói quen close() Statement sau khoản thời gian áp dụng xuất xắc bởi vì mong chờ điều đó xẩy ra khi nó tự động bị đóng góp nhằm giải pchờ tài ngulặng. Đặc biệt trường hợp họ tiến hành Statement trong khoảng lặp, thì có thể đang gặp mặt sự việc về thiếu thốn tài nguyên thực hiện nếu như chờ đón nó tự động hóa đóng góp.

Khi Statement được close() thì ResultSet của Statement cũng được cthua trận.

Chương thơm trình Java liên kết cơ sử dữ liệu thực hiện JDBC API

Chương trình dưới chỉ đơn giản và dễ dàng thực hiện liên kết cho các đại lý dữ liệu MySquốc lộ cùng thêm một cái tài liệu vào bảng user.

Xem thêm: Hướng Dẫn Check Bảo Hành Màn Hình Dell Đơn GiảN NhấT, Bảo Hành Màn Hình Dell Ultrasharp U2414H

package com.hoiquanzen.com;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class HelloJdbc private static final String hostName = "localhost";private static final String dbName = "jdbcdemo";private static final String userName = "root";private static final String password = "";// jdbc:mysql://hostname:port/dbnameprivate static final String connectionURL = "jdbc:mysql://" + hostName + ":3306/" + dbName;public static void main(String<> args) throws ClassNotFoundException, SQLException // 1. Load Driver// Class.forName("com.mysql.jdbc.Driver");DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());// 2. mở cửa connectionConnection nhỏ = DriverManager.getConnection(connectionURL, userName, password);// 3. Create StatementStatement st = nhỏ.createStatement();// 4. Exexinh tươi queryString sqlInsert = "INSERT INTO user(username, password, createdDAte) VALUE("hoiquanzen.com", "123", now());";int numberRowsAffected = st.executeUpdate(sqlInsert);if (numberRowsAffected == 0) System.out.println("insertion failed"); else System.out.println("inserted successfully : " + numberRowsAffected);st.close();// 5. Cthảm bại connectionnhỏ.close();Thực thi công tác bên trên ta bao gồm hiệu quả sau:

inserted successfully : 1Lưu ý: các bạn nên được đặt câu lệnh close() trong finally bloông chồng trong câu lệnh try-catch-finally hoặc thực hiện tính năng được cải thiện try-with-resource để bảo đảm resource luôn luôn được cthua trận sau khoản thời gian sử dụng. Ví dụ:

package com.hoiquanzen.com;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class HelloJdbcWithJava8 private static final String hostName = "localhost";private static final String dbName = "jdbcdemo";private static final String userName = "root";private static final String password = "";// jdbc:mysql://hostname:port/dbnameprivate static final String connectionURL = "jdbc:mysql://" + hostName + ":3306/" + dbName;public static void main(String<> args) throws ClassNotFoundException, SQLException // 1. Load Driver// Class.forName("com.mysql.jdbc.Driver");DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());try (// 2. Open connectionConnection bé = DriverManager.getConnection(connectionURL, userName, password);// 3. Create StatementStatement st = nhỏ.createStatement();) // 4. Execute queryString sqlInsert = "INSERT INTO user(username, password, createdDAte) VALUE("hoiquanzen.com", "123", now());";int numberRowsAffected = st.executeUpdate(sqlInsert);if (numberRowsAffected == 0) System.out.println("insertion failed"); else System.out.println("inserted successfully : " + numberRowsAffected);// 5. Close connection: will be auto closed by try-with-resourceTrên đó là một trong những kỹ năng và kiến thức cơ bạn dạng về liên kết cửa hàng dữ liệu với Java JDBC. Trong bài viết tiếp theo, chúng ta vẫn cùng khám phá sâu rộng về các API của JDBC.