Kết nối Java với MySQL – Học Java

Trong bài này bạn sẽ được học cách kết nối MySQL bằng cách sử dụng thư viện Java JDBC Connection, đây là bước đầu và quan trọng nhất khi bạn muốn xử lý database trong Java JDBC.

Kết nối Java với MySQL bằng JDBC

Để kết nối Java với MySQL bằng JDBC, giả sử bạn đã tạo bảng trong MySQL, bạn cần làm theo 4 bước sau:

  1. Tải file mysql-connector-java-x.y.zz.zip về máy tại https://dev.mysql.com/downloads/connector/j/, giải nén ra được file mysql-connector-java-x.y.zz-bin.jar.
  2. Add thư viện JDBC Driver mysql-connector-java-x.y.zz-bin.jar vào project.
  3. Gọi phương thức Class.forName(“com.mysql.jdbc.Driver”).
  4. Gọi phương thức DriverManager.getConnection() để kết nối đến cơ sở dữ liệu MySQL.

Kết nối MySQL bằng Java JDBC Connection

Đầu tiên bạn hãy import ba class quan trọng nhất vào dự án, đó là SQLExceptionDriverManager, và Connection từ java.sql.* package.

import

java

.sql

.Connection

;

import

java

.sql

.DriverManager

;

import

java

.sql

.SQLException

;

Code language:

CSS

(

css

)

Tiếp theo hãy gọi phương thức getConnection() từ class DriverManager để khởi tạo Connection Object.

Sẽ có ba tham số bạn cần truyền vào phương thức này:

  • url: Đây là chuỗi kết nối database. Đối với MySQL thì nó có dạng như sau jdbc:mysql://localhost:3306/mysqljdbc, tức là bạn đang kết nối với máy chủ localhost, cổng 3306 và cơ sở dữ liệu tên là mysqljdbc.
  • user: Tên đăng nhập của User kết nối vào database
  • password: Mật khẩu của User.

Connection conn =

null

;

try

{

String

url =

"jdbc:mysql://localhost:3306/mysqljdbc"

;

String

user =

"root"

;

String

password =

"secret"

; conn = DriverManager.getConnection(url, user, password); }

catch

(SQLException e) { System.out.println(e.getMessage()); }

finally

{

try

{

if

(conn !

null

) conn.close() }

catch

(SQLException ex){ System.out.println(ex.getMessage()) } }

Code language:

JavaScript

(

javascript

)

Nếu quá trình đăng nhập không thành công bởi một số lý do như: Mật khẩu sai, tên đăng nhập sai, cổng kết nối không tồn tại, database không tồn tại, lúc này sẽ phát sinh ra lỗi SQLException. Vì vậy khi kết nối database bạn nên đặt nó trong khối try ... cache để đảm bảo an toàn.

Ngoài ra sau khi sử dụng xong bạn nên tắt kết nối ngay để tránh bị tấn công vào dữ liệu. Để tắt kết nối khá đơn giản, bạn chỉ cần gọi phương thức close() trong Connection Object mà bạn đã tạo ra.

Nó tự động gọi phương thức close() của đối tượng Connection sau khi chương trình kết thúc. Như bạn có thể thấy chương trình trở nên rõ ràng hơn nhiều.

Tuy nhiên thực tế bạn không nên sử dụng cách này, bởi nó sẽ gặp một số vấn đề như: Khi bạn đổi database hoặc thông số kết nối thì phải sửa khá nhiều vị trí, đồng thời không được bảo mật khi mã nguôn có quá nhiều nơi kết nối.

Để tránh tạo mã cứng kết nối như vậy thì ta có giải pháp khá hay, đó là tạo ra một file chứa những thông số kết nối này. Lúc nay nếu thay đổi gì thì chỉ cần vào file này thực hiện là được.

Mình tạo một file tên là db.properties với nội dung như sau:

user=root password=secret url=jdbc:mysql:

Code language:

PHP

(

php

)

Code hoàn chỉnh như sau:

import

java.io.FileInputStream;

import

java.io.IOException;

import

java.sql.Connection;

import

java.sql.DriverManager;

import

java.sql.SQLException;

import

java.util.Properties; public

class

MySQLJDBCUtil

{ public

static

Connection getConnection() throws SQLException { Connection conn =

null

;

try

(FileInputStream f =

new

FileInputStream(

"db.properties"

)) { Properties pros =

new

Properties(); pros.load(f);

String

url = pros.getProperty(

"url"

);

String

user = pros.getProperty(

"user"

);

String

password = pros.getProperty(

"password"

); conn = DriverManager.getConnection(url, user, password); }

catch

(IOException e) { System.out.println(e.getMessage()); }

return

conn; } }

Code language:

JavaScript

(

javascript

)

Như vậy là trong bài này mình đã hướng dẫn xong cách kết nối với MySQL trong Java JDBC Driver. Chúc bạn thực hiện thành công!