Java – Kết nối cơ sở dữ liệu MySQL – Phần 1

Rate this post

Trong bài này chúng ta sẽ học cách kết nối cơ sở dữ liệu MySQL.

JDBC

JDBC là một tập các hàm API cho phép kết nối đến cơ sở dữ liệu, cũng như thực hiện các câu truy vấn, cập nhật trên cơ sở dữ liệu. JDBC được phát triển dành riêng cho cơ sở dữ liệu quan hệ. JDBC nằm trong gói java.sql.

Cơ sở dữ liệu MySQL

Bạn tất nhiên là phải có MySQL cài đặt trong máy rồi. Và ngoài ra bạn cũng cần phải có driver tương ứng với từng môi trường nữa, chẳng hạn như ODBC là driver cho môi trường Windows, Linux, và MacOSX, ADO.NET là driver cho môi trường .NET… còn đối với Java thì driver là JDBC. Nếu bạn dùng IDE là NetBeans thì JDBC đã có sẵn trong máy bạn rồi. Còn các IDE khác thì bạn phải lên trang chủ của MySQL download về cài vào. Ở đây mình dùng NetBeans.

Để sử dụng JDBC thì bạn click chuột phải vào Libraries trong project của bạn rồi chọn MySQL JDBC Driver và bấm Add Library.

Capture

Bây giờ bạn cần có một database để test. Bạn chạy MySQL lên rồi tạo một database mới và đặt tên tùy ý mình..

CREATE DATABASE test;
Query OK, 1 row affected (0.02 sec)

Ở đây mình tạo database với tên là test. Sau khi đã có CSDL rồi thì chúng ta bắt đầu kết nối và thao tác với CSDL từ Java.

Kết nối và xem phiên bản MySQL

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Version {

    public static void main(String[] args) {

        Connection con = null;
        Statement st = null;
        ResultSet rs = null;

        String url = "jdbc:mysql://localhost:3306/test";
        String user = "root";
        String password = "";

        try {
            con = DriverManager.getConnection(url, user, password);
            st = con.createStatement();
            rs = st.executeQuery("SELECT VERSION()");

            if (rs.next()) {
                System.out.println(rs.getString(1));
            }

        } catch (SQLException ex) {
            ex.printStackTrace();

        } finally {
            try {
                if (rs != null) {
                    rs.close();
                }
                if (st != null) {
                    st.close();
                }
                if (con != null) {
                    con.close();
                }

            } catch (SQLException ex) {
                ex.printStackTrace();
            }
        }
    }
}

Chúng ta truy vấn phiên bản MySQL trên máy của mình.

String url = "jdbc:mysql://localhost:3306/testdb";

Để kết nối đến CSDL thì chúng ta cần có một đường dẫn url theo quy định. Cú pháp của đường dẫn này bao gồm jdbc:mysql:// tiếp theo là địa chỉ của máy tính, số hiệu cổng 3306, và tên của CSDL mà mình muốn kết nối.

con = DriverManager.getConnection(url, user, password);

Để thực hiện kết nối thì chúng ta gọi DriverManager.getConnection() và đưa vào tham số url, user và password của MySQL khi bạn cài đặt.

st = con.createStatement();

Phương thức createStatement() tạo ra một đối tượng lớp Statement, lớp này có nhiệm vụ gửi các câu truy vấn lên cơ sở dữ liệu.

rs = st.executeQuery("SELECT VERSION()");

Phương thức executeQuery() của lớp Statement sẽ thực thi các câu truy vấn SQL và trả về một đối tượng ResultSet, đây chính là bảng dữ liệu mà CSDL trả về.

if (result.next()) {
    System.out.println(result.getString(1));
}

Bên trong đối tượng ResultSet có một con trỏ chỉ đến các hàng trong bảng dữ liệu, mặc định thì con trỏ này trỏ đến trước hàng đầu tiên một hàng. Phương thức next() sẽ di chuyển con trỏ lên 1 hàng nếu có, nếu không còn hàng nào thì phương thức này trả về false. Phương thức getString() lấy giá trị của hàng hiện tại với tham số cột trong bảng. Các cột được đánh số từ 1.

try {
    if (rs != null) {
        rs.close();
    }
    if (st != null) {
        st.close();
    }
    if (con != null) {
        con.close();
    }
...

Sau khi đã kết thúc truy vấn thì chúng ta phải đóng kết nối tới CSDL.

10.1.9-MariaDB
0 0 votes
Article Rating
Subscribe
Thông báo cho tôi qua email khi
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments