JDBC là gì? Kết nối java với mysql bằng JDBC

JDBC là gì ? Kết nối java với mysql bằng JDBC

1. JDBC là gì?

JDBC ( Java Database Connectivity ) là một chuẩn API ( Application Program Interface ) được cho phép liên kết những chương trình viết bởi Java với những hệ quản trị cơ sở tài liệu ( MySQL, MS SQL, Postgre SQL, Oracle, DB2 … )
JDBC chỉ là một tập những interface, những định nghĩa, thông tin lỗi, đặc tả chứ không phải là thư viện. Với mỗi hệ quản trị cơ sở tài liệu ta sẽ có một setup JDBC riêng cho nó, ví dụ JDBC cho MySQL, JDBC cho MS SQL …

Các thành phần của JDBC

DriverManager: Dùng để quản lý danh sách các Driver (database drivers).

Bạn đang đọc: JDBC là gì? Kết nối java với mysql bằng JDBC

Driver: Dùng để liên kết các kết nối tới cơ sở dữ liệu, điều khiển các liên kết.

Connection: Biểu thị kết nối tới cơ sở dữ liệu. Dùng để tạo ra Statement, PreparedStatement và CallableStatement.

Statement, PreparedStatement, CallableStatement: Chứa lệnh SQL gửi tới cơ sở dữ liệu để thực thi.

ResultSet – biểu diễn một tập kết quả trong cơ sở dữ liệu tạo ra bởi việc sử dụng một câu lệnh SQL là SELECT.

SQLException – một lớp xử lý lỗi ngoại lệ chứa các lỗi truy cập cơ sở dữ liệu.

2. Code ví dụ Kết nối java với mysql bằng JDBC

Tạo cơ sở tài liệu demo-jdbc và table user_info như hình dưới
( Xem lại : Cài đặt và thông số kỹ thuật MySQL )

JDBC là gì? Kết nối java với mysql bằng JDBC

Bây giờ mình sẽ viết 1 chương trình Java liên kết tới database demo-jdbc và hiển thị những thông tin của table user_info
Để liên kết với MySQL bằng Java tất cả chúng ta cần tải về jdbc tương ứng cho MySQL
Các bạn hoàn toàn có thể tải về thư viện jdbc cho MySQL tại đây mysql-connector-java-6.0.6.jar
Hoặc sử dụng maven :



    mysql
    mysql-connector-java
    6.0.6

Ở đây mình sử dụng thư viện mysql-connector-java-6.0.6.jar và copy nó vào project

package stackjava.com.demomysqljdbc.demo;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;

public class Demo {
  public static void main(String[] args) throws ClassNotFoundException, SQLException {
    Class.forName("com.mysql.jdbc.Driver");
    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/demo-jdbc", "root", "admin1234");
    Statement stmt = con.createStatement();

    ResultSet rs = stmt.executeQuery("SELECT * FROM user_info");

    ResultSetMetaData rsmd = rs.getMetaData();

    System.out.println("Total columns: " + rsmd.getColumnCount());

    for (int i = 1; i <= rsmd.getColumnCount(); i++) {
      System.out.println(
          "Column " + i + " [name: " + rsmd.getColumnName(i) + " - type: " + rsmd.getColumnTypeName(i) + "]");
    }
    System.out.println("--------------------");
    while (rs.next())
      System.out.println(rs.getInt(1) + "  " + rs.getString(2) + "  " + rs.getString(3));
    con.close();
  }
}

JDBC là gì? Kết nối java với mysql bằng JDBC

Xem thêm: Neocortex là gì

Giải thích :

  • Class.forName dùng để chỉ dẫn cho Java biết sẽ kết nối tới loại database nào. Class.forName(“com.mysql.jdbc.Driver”) biểu thị database MySQL
  • ResultSetMetaData sẽ meta data cho ResultSet, ở đây ResultSet lấy từ câu SQL “SELECT * FROM user_info” nên nó sẽ gồm tất cả các column trong table user_info. Nếu bản chuyển câu SQL thành “SELECT id, name FROM user_info” thì ResultSetMetaData sẽ chỉ có 2 column id, name

Kết quả :

Một số chú ý quan tâm :

  • Từ bản mysql-connector-java-6.0.6.jar bắt đầu chuyển classcom.mysql.jdbc.Driver  sang  com.mysql.cj.jdbc.Driver, nếu bạn vẫn dùng class cũ thì nó sẽ thông báo warning chứ không ảnh hưởng gì.

Okay, Done !
Download code ví dụ trên tại đây

Xem thêm :
So sánh Statement với PreparedStatement, CallableStatement
Truy vấn database với jdbc – StatementStatement
Truy vấn database với jdbc – PreparedStatement
Truy vấn database với jdbc – CallableStatement

JDBC là gì? Kết nối java với mysql bằng JDBC

Xem thêm: Tứ niệm xứ – Wikipedia tiếng Việt

References :
http://www.theserverside.com/definition/Java-Database-Connectivity-JDBC

Source: https://mindovermetal.org
Category: Wiki là gì

5/5 - (2 votes)
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments