Fix lỗi apache lưu dữ liệu trên 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:

Fix lỗi apache lưu dữ liệu trên eclipse

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:

Fix lỗi apache lưu dữ liệu trên eclipse

download mysql connector j

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

Fix lỗi apache lưu dữ liệu trên eclipse

download mysql connector j 2

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

Fix lỗi apache lưu dữ liệu trên eclipse

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 … :

Fix lỗi apache lưu dữ liệu trên eclipse

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--bin.jar” -> click OK :

Fix lỗi apache lưu dữ liệu trên eclipse

add lib

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

Fix lỗi apache lưu dữ liệu trên eclipse

add lib 2

Fix lỗi apache lưu dữ liệu trên eclipse

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:

Fix lỗi apache lưu dữ liệu trên eclipse

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 😀