java, JSP - Servlet, mysql, study

JAVA Kết nối tới cơ sở dữ liệu MySQL dùng IDE Eclipse

Hi all, bài viết này mình sẽ hướng dẫn mọi người cách để kết nối tới cơ sở dữ liệu MySQL trong Java. Ở đây mình sử dụng Eclipse nên nếu bạn sử dụng Netbeans thì hãy qua bài viết này để xem nhé ( click here ).

Mình sẽ thực hiện cơ sở dữ liệu MySQL trên phpMyAdmin. Nếu bạn chưa biết cách thao tác với phpMyAdmin thì qua bài viết này để xem nên xem phần tạo tài khoản, phân quyền và tạo cơ sở dữ liệu ( click here ). Mọi người có thể dùng các phần mềm khác như MySQL WorkBench, hoặc MySQL Server… Mình sẽ không nói kỹ chỗ này.

Đây là thông tin user mình dùng để connect tới cơ sở dữ liệu là:

  • User: david
  • Password: david

Ok, tiếp theo chúng ta sẽ mở Eclipse và tạo 1 project mới để bắt đầu các bước kết nối vào cơ sở dữ liệu. Trong Java thì cả java application và web application ( jsp/servlet ) cách kết nối tương tự như nhau. Ở đây mình tạo 1 project java application mới như trong hình và mình tạo ra 1 package là djohnblog, 1 file để kết nối tới cơ sở dữ liệu là DataConnection:

my project

my project


Trước khi bắt đầu code chúng ta cần phải import thêm thư viện JDBC MySQL Driver cho project. Chúng ta sẽ tải gói Connector/J tại trang dev.mysql.com ( click here ) Chọn bản ZIP Archice hoặc bản TAR Archive đều được:

download mysql connector j

download mysql connector j

Click vào “No thanks, just start my download.” :

download mysql connector j 2

download mysql connector j 2


Sau khi tải về xong, giải nén chúng ta sẽ có file “mysql-connector-java-<version>-bin.jar” :

Add JAR/Folder 2

Add JAR/Folder 2


Chúng ta sẽ vào project và chuột phải vào và chọn Build Path -> Configure Build Path … :

Configure Build Path

Configure Build Path


Sau đó chúng ta sẽ sang tab Libraries -> Add External JARs… -> chọn đến nơi chứa file “mysql-connector-java-<version>-bin.jar” -> click OK :

add lib

add lib


Sau khi thêm xong chúng ta click vào OK để hoàn tất:

add lib 2

add lib 2

add lib 3

add lib 3

Đây là cách để thêm Libaries mới vào trong Project sử dụng trình IDE Eclispe, mọi người cũng làm tương tự với những Libaries khác nhé.

NOTE: Nếu project là JSP/Servlet thì chúng ta sẽ làm thêm 1 vài bước này nữa. Đó là sau khi thêm Lib tương tự như bước trên chúng ta sẽ copy file Lib vừa thêm đó vào folder “lib” nằm trong folder WEB-INF:

add lib jsp/servlet

add lib jsp/servlet

Ok sau khi đã thêm lib xong, chúng ta sẽ tạo 1 file cấu hình để lưu các thông tin của database để connect. Ở đây mình sẽ tạo file có tên là “info.properties” có nội dung như sau:

#MySQL

url=jdbc:mysql://localhost:3306/
user=david
password=david

Nếu bạn chưa biết về file properties hay cách sử dụng nó trong Java thì hãy qua bài viết này để đọc trước nhé ( click here ).

Ok sau khi xong hết chúng ta sẽ code class DataConnection để lấy connect tới cơ sở dữ liệu như sau:

public class DataConnection {

    private static Connection con;
    private static String URL;
    private static String USER;
    private static String PASSWORD;

    public static Connection getConnection() {
        con = null;
        Properties properties = new Properties();
        try {
            properties.load(new FileReader(new File("info.properties")));
            URL = properties.getProperty("url");
            USER = properties.getProperty("user");
            PASSWORD = properties.getProperty("password");
            // driver register
            DriverManager.registerDriver(new com.mysql.jdbc.Driver());
            con = (Connection) DriverManager.getConnection(URL, USER, PASSWORD);
        } catch (IOException | SQLException ex) {
            Logger.getLogger(DataConnection.class.getName()).log(Level.SEVERE, null, ex);
        }
        return (con);
    }

    public static void freeConnection() {
        try {
            con.close();
        } catch (SQLException ex) {
            Logger.getLogger(DataConnection.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

}

Ở đoạn code trên chúng ta sẽ chú ý vài chỗ:

  1. Biến kiểu Connection : import com.mysql.jdbc.Connection
  2. DriverManager.registerDriver(new com.mysql.jdbc.Driver()) : Dòng này để chúng ta sẽ đăng ký driver MySQL nếu bạn sử dụng 1 kiểu DBMS khác như SQLServer … thì chúng ta sẽ đăng ký driver của SQLServer.
  3. (Connection) DriverManager.getConnection(URL, USER, PASSWORD) : Dòng này để lấy ra connection đến cơ sở dữ liệu với 3 tham số truyền vào lần lượt là : url để connect, tên user để connection, password của user và ép kiểu về kiểu Connection. Nếu không lấy được connection đến cơ sở dữ liệu thì sẽ trả về đối tượng null.

Bây giờ chúng ta sẽ test thử bằng 1 hàm main như sau để xem có thể connect tới cơ sở dữ liệu hay không?

NOTE: Nhớ mở MySQL server lên nhé 😀

public static void main(String[] args) {
        Connection c = getConnection();
        if (c == null) {
            System.out.println("something wrong");
        } else {
            System.out.println("ok");
        }
}

NOTE: Nếu không connect được thì bạn hãy xem lại vài lý do sau :

  1. Thông tin của user có đúng không?
  2. Kiểm tra lại url dùng để connect?
  3. Kiểm tra lại thư viện JDBC MySQL
  4. Kiểm tra import Connection có đúng thư viện chưa?
  5. Kiểm tra xem đã đăng ký driver MySQL chưa?

Ok, vậy là mình đã hướng dẫn mọi người cách kết nối tới cơ sở dữ liệu MySQL trong Java sử dụng IDE Netbeans. Đối với các cơ sở dữ liệu khác như SQL Server thì cũng làm tương tự như thế thôi chỉ khác nhau ở port và url connect tới. Hy vọng bài viết này có ích với mọi người 😀

Chúc mọi người thành công!!

Standard

6 thoughts on “JAVA Kết nối tới cơ sở dữ liệu MySQL dùng IDE Eclipse

  1. Trâm Anh says:

    Mik cảm ơn bạn nhiều lắm vì đã viết bài này. Nếu bạn nào ko connect đc thì sửa đường dẫn ở new File(“info.properties”) thành new File(“D:\my_java\eclipse-workspace\ReadFile_txt\src\Read\info.properties”) theo đường dẫn trong máy của các bạn. Mik đã connect thành công. Mà Ad cho mik hỏi nếu mik muốn viết file properties để connect vs SQL server thì mik phải viết sao vậy Ad? Mong Ad đọc đc và phản hồi trong thời gian sớm vì mik muốn viết theo cách này cho dealine java của mik. Thanks Ad!!!

    Liked by 1 person

    • Xin lỗi bạn vì trả lời bạn muộn 😦 SQL server mình không tìm hiểu nên cũng kb cách b à, nhưng mình nghĩ n cũng sẽ tương tự như MySQL thôi b

      Like

Leave a comment

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