Tuyển dụng
Viettel IDC

Cách liên kết Database với Java – Hướng dẫn kết nối JDBC và Hibernate

08/11/2025

Biết cách liên kết database với Java là bước cốt lõi lập trình viên cần nắm vững để ứng dụng Java có thể lưu trữ và xử lý dữ liệu. Trong bài viết này, Viettel IDC sẽ hướng dẫn cách kết nối CSDL trong java theo hai phương pháp phổ biến: Sử dụng JDBC để thực thi câu lệnh SQL trực tiếp và Hibernate (ORM) để thao tác dữ liệu theo hướng đối tượng.

JDBC là gì?

JDBC (Java Database Connectivity) là một API chuẩn của Java dùng để kết nối và tương tác với cơ sở dữ liệu quan hệ. JDBC cung cấp các interface và lớp để thực thi câu lệnh SQL từ Java, nhận kết quả trả về (qua đối tượng ResultSet) và quản lý kết nối. 

Với JDBC, ứng dụng Java có thể làm việc với nhiều hệ quản trị CSDL (MySQL, Oracle, PostgreSQL, …) thông qua driver tương ứng. Các thành phần chính gồm: 

- DriverManager (quản lý và tìm kiếm driver) 

- Connection (phiên kết nối đến DB)

- Statement/PreparedStatement (thực thi truy vấn SQL)

- ResultSet (chứa dữ liệu truy vấn)

- Xử lý ngoại lệ SQLException.

JDBC là phần cốt lõi trong Java SE để làm việc với database. Khi chạy ứng dụng JDBC Java, bạn chỉ cần gọi API JDBC mà không phải quan tâm chi tiết bên dưới. Ví dụ, một dòng mã DriverManager.getConnection(url, user, pass) sẽ tạo kết nối đến database.

JDBC là cách liên kết Database với Java phổ biến

JDBC là cách liên kết Database với Java phổ biến

Chuẩn bị môi trường kết nối JDBC

Trước khi biết cách liên kết database với Java, bạn cần chuẩn bị môi trường kết nối JDBC với một số yêu cầu cơ bản trên máy:

- Bước 1: Cài đặt JDK: Đảm bảo máy tính đã cài JDK (Java 8 trở lên) để viết và chạy chương trình Java.

- Bước 2: Cài đặt MySQL: Cài MySQL Server và tạo một database trống để kết nối (ví dụ database mydb).

- Bước 3: Thêm JDBC Driver: Tải MySQL Connector/J (JDBC driver cho MySQL) và thêm vào project. Nếu dùng Maven, khai báo dependency trong pom.xml; nếu không, thêm file JAR vào classpath.

Ví dụ thêm MySQL JDBC driver trong Maven:

<dependency>

  <groupId>mysql</groupId>

  <artifactId>mysql-connector-java</artifactId>

  <version>8.0.33</version>

</dependency>

- Bước 4: Cấu hình IDE/biến môi trường: Đảm bảo IDE (Eclipse/IntelliJ) đã nhận diện JDK, biến JAVA_HOME, PATH được cấu hình đúng. Nếu dùng command-line, đảm bảo javac/java chạy được.

Sau khi chuẩn bị xong JDK, CSDL và JDBC Driver, bạn có thể viết mã Java để kết nối và truy vấn cơ sở dữ liệu.

Cách liên kết Database với Java bằng JDBC

Bước 1: Tải driver JDBC

Sử dụng Class.forName("com.mysql.cj.jdbc.Driver") hoặc DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver()) để nạp driver JDBC của MySQL vào chương trình.

Bước 2: Mở kết nối tới database

Xác định URL kết nối dưới dạng "jdbc:mysql://<host>:<port>/<database>" và gọi DriverManager.getConnection(url, username, password) để tạo một kết nối (đối tượng Connection). Ví dụ:

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

Connection conn = DriverManager.getConnection(url, "root", "");  // Mở kết nối

Bước 3: Tạo Statement

Dùng đối tượng Connection vừa tạo để xây dựng một Statement hoặc PreparedStatement nhằm thực thi lệnh SQL. Ví dụ:

Statement st = conn.createStatement();  // Tạo Statement để gửi lệnh SQL

Bước 4: Thực thi câu lệnh SQL

Gửi câu lệnh SQL qua Statement. Với truy vấn SELECT, dùng st.executeQuery(sql) để nhận về ResultSet; với lệnh INSERT/UPDATE/DELETE, dùng st.executeUpdate(sql) để nhận về số bản ghi bị tác động. Chẳng hạn, khi chèn một bàn ghi mới sẽ dùng lệnh:

String sqlInsert = "INSERT INTO user(username, password) VALUES('gpcoder','123')";

int rows = st.executeUpdate(sqlInsert);

System.out.println("Số hàng được thêm: " + rows);  // In ra số hàng bị ảnh hưởng:contentReference[oaicite:8]{index=8}

Bước 5: Xử lý kết quả

Nếu là truy vấn SELECT, duyệt qua ResultSet trả về bằng vòng lặp while(rs.next()) để lấy từng dòng dữ liệu. Nếu là INSERT/UPDATE/DELETE, kết quả trả về là số bản ghi bị thay đổi, có thể kiểm tra để xác định việc cập nhật có thành công không. Chẳng hạn như:

ResultSet rs = st.executeQuery("SELECT * FROM users");

while (rs.next()) {

    int id = rs.getInt("id");

    String name = rs.getString("username");

    System.out.println(id + " - " + name);

}

Bước 6: Đóng kết nối và tài nguyên

Sau khi hoàn thành các thao tác, gọi st.close() và conn.close() để đóng Statement và Connection, giải phóng tài nguyên. Tốt nhất , bạn nên đặt trong khối finally hoặc dùng try-with-resources để tự động đóng kết nối sau khi sử dụng.

Cách liên kết Database với Java bằng Hibernate (ORM)

Bên cạnh kết nối database với Java bằng JDBC, bạn cũng có thể kết nối dữ liệu thông qua Hibernate. Hibernate là một framework ORM trong Java, cho phép ánh xạ các class (POJO) với bảng dữ liệu trong CSDL. Sử dụng Hibernate, bạn không cần viết nhiều mã JDBC thủ công mà có thể thao tác với CSDL theo hướng đối tượng.

Các bước cơ bản để sử dụng Hibernate (ORM Java) như sau:

- Bước 1: Tạo project và thêm thư viện 

Tạo dự án Java (thường dùng Maven/Gradle) và thêm thư viện hibernate-core cùng JDBC driver (ví dụ mysql-connector-java) vào file cấu hình.

- Bước 2: Định nghĩa Entity 

Tạo các lớp Java (POJO) được chú thích với @Entity, @Table, @Id, v.v. để ánh xạ với bảng trong database.

Ví dụ:

Cách liên kết Database với Java

Cách liên kết Database với Java

- Bước 3: Cấu hình kết nối Hibernate:

Thiết lập file hibernate.cfg.xml hoặc application.properties chứa thông tin kết nối (URL, tài khoản, driver, dialect) và các cài đặt Hibernate.

- Bước 4: Khởi tạo SessionFactory/Session

Tạo SessionFactory từ Configuration (nạp file cấu hình và class entity), sau đó mở Session để bắt đầu giao dịch (transaction).

Kết nối cơ sở dữ liệu với Java bằng Hibernate

Kết nối cơ sở dữ liệu với Java bằng Hibernate

- Bước 5: Thực hiện CRUD

Sử dụng Session để thêm, sửa, xóa hoặc truy vấn đối tượng. Hibernate sẽ tự chuyển đổi các thao tác này thành SQL phù hợp.

Ví dụ:

Configuration cfg = new Configuration().configure("hibernate.cfg.xml");

SessionFactory factory = cfg.buildSessionFactory();

Session session = factory.openSession();

- Bước 6: Thao tác với CSDL

Dùng Session để lưu, truy vấn hoặc cập nhật dữ liệu (ví dụ session.save(entity), session.createQuery("FROM Role").list(), v.v.), rồi gọi session.getTransaction().commit() để lưu thay đổi xuống database.

FAQs - Câu hỏi thường gặp khi kết nối dữ liệu với Java

Khi nào nên dùng JDBC và khi nào nên dùng Hibernate?

Nếu dự án nhỏ, số lượng bảng và truy vấn không nhiều, hoặc yêu cầu hiệu năng ở mức chi tiết, JDBC sẽ là lựa chọn phù hợp vì dễ kiểm soát và không tạo lớp xử lý bổ sung. 

Ngược lại, với dự án trung bình đến lớn, có nhiều thực thể dữ liệu và yêu cầu bảo trì lâu dài, Hibernate giúp tiết kiệm thời gian nhờ thao tác theo hướng đối tượng và tự động xử lý truy vấn. 

Lỗi “Cannot load JDBC driver” xử lý thế nào?

Lỗi này thường xuất phát từ việc thiếu thư viện driver tương ứng trong dự án, khiến Java không thể khởi tạo lớp driver kết nối. Để khắc phục, bạn chỉ cần kiểm tra lại phần cấu hình Maven/Gradle hoặc chắc chắn rằng file mysql-connector-java (hoặc driver cho CSDL bạn dùng) đã được thêm đúng vào classpath.

Vì sao khi chạy JDBC báo lỗi “Access denied for user…”?

Lỗi này thường xảy ra khi tài khoản dùng để kết nối chưa được cấp quyền truy cập vào cơ sở dữ liệu hoặc thông tin đăng nhập bị sai. Bạn cần kiểm tra lại username và password, đảm bảo user đó đã được cấp quyền phù hợp trên database, chẳng hạn như CONNECT, SELECT, INSERT hoặc UPDATE. 

Khi kết nối java với MySQL, bạn có thể dùng lệnh GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost' → Sau đó FLUSH PRIVILEGES để cập nhật quyền truy cập.

Kết luận

Qua hướng dẫn trên, bạn đã nắm được cách liên kết Database với Java bằng hai phương pháp: JDBC và Hibernate. JDBC phù hợp với các tác vụ truy vấn trực tiếp hoặc hệ thống nhỏ, lập trình viên cần toàn quyền kiểm soát câu lệnh SQL. Trong khi đó, Hibernate giúp giảm thiểu thao tác thủ công, dễ bảo trì và phát triển hơn nhờ cơ chế ORM tự động ánh xạ đối tượng Java với bảng dữ liệu.

Dù sử dụng cách nào để kết nối ứng dụng Java với cơ sở dữ liệu, tính ổn định, an toàn và dễ mở rộng của cơ sở dữ liệu vẫn là yếu tố hàng đầu. Với các dự án cần vận hành lâu dài, bạn có thể tham khảo https://viettelidc.com.vn/viettel-database-service, dịch vụ hỗ trợ quản lý và tối ưu hiệu năng cơ sở dữ liệu theo tiêu chuẩn doanh nghiệp, giám sát 24/7 và đảm bảo độ tin cậy cao.

Liên hệ ngay tới Viettel IDC qua các kênh để được tư vấn và hỗ trợ:

- Hotline: 1800 8088 (miễn phí cước gọi)

- Fanpage: https://www.facebook.com/viettelidc  

- Website: https://viettelidc.com.vn
 

Bình luận ()

Đăng nhập | Đăng ký
để gửi bình luận
Ý kiến của bạn sẽ được xét duyệt trước khi đăng.
Ý kiến của bạn sẽ được xét duyệt trước khi đăng.
Ý kiến của bạn sẽ được xét duyệt trước khi đăng.
Xem thêm bình luận

Tin liên quan

16/10/2026

vMaaS cập nhật thêm mô hình AI mới - Một API, nhiều mô hình lựa chọn linh hoạt, chi phí không đổi

Viettel Model as a Service (vMaaS) cập nhật thêm Gemma 3, Qwen3-VL và Llama Nemotron, đồng thời hỗ trợ thêm hơn 40 mô hình AI theo nhu cầu. Tìm hiểu cách chọn mô hình phù hợp qua một API.

15/10/2026

Thông báo về việc tổ chức đấu giá tài sản thanh lý tháng 10/2026

Công ty Cổ phần Viettel – CHT thông báo về việc đấu giá đối với danh mục tài sản: Tài sản thanh lý bao gồm: Lô 1 - Bình ắc quy + Lô 2 - Tủ Rack và thiết bị cơ điện.

14/10/2026

So sánh IDS và IPS: Sự khác biệt và cách lựa chọn phù hợp

So sánh IDS và IPS giúp doanh nghiệp hiểu rõ cách hai giải pháp phát hiện, ngăn chặn xâm nhập và lựa chọn phương án bảo vệ hệ thống mạng phù hợp.

14/10/2026

NVMe Hosting là gì? Ưu điểm, so sánh và cách lựa chọn

NVMe Hosting là gì? Tìm hiểu ưu điểm, so sánh với SSD SATA và HDD, cùng cách lựa chọn hosting phù hợp để tối ưu hiệu năng website.

14/10/2026

Sự khác biệt giữa các dịch vụ hosting của Việt Nam với quốc tế

Tìm hiểu sự khác biệt giữa các dịch vụ hosting của Việt Nam với quốc tế về tốc độ, chi phí, công nghệ và hỗ trợ kỹ thuật để chọn giải pháp phù hợp.

14/10/2026

So sánh dịch vụ hosting tại Viettel IDC với những nhà cung cấp khác: Nên chọn bên nào?

So sánh dịch vụ hosting tại Viettel IDC với những nhà cung cấp khác về giá, cấu hình, hiệu năng và bảo mật để chọn giải pháp phù hợp cho doanh nghiệp.

14/10/2026

Những nền tảng điện toán đám mây nào phù hợp nhất cho doanh nghiệp nhỏ? Cách lựa chọn hiệu quả

Những nền tảng điện toán đám mây nào phù hợp cho doanh nghiệp nhỏ? Tìm hiểu các lựa chọn phổ biến và tiêu chí chọn nền tảng phù hợp.

14/10/2026

Cách chọn máy chủ phù hợp cho website nhỏ tại Việt Nam: Từ cấu hình đến chi phí

Cách chọn máy chủ phù hợp cho website nhỏ tại Việt Nam dựa trên cấu hình, nhu cầu sử dụng, chi phí và khả năng mở rộng.

14/10/2026

Những yếu tố quan trọng khi lựa chọn dịch vụ Cloud Database để đảm bảo khả năng mở rộng và độ tin cậy

Những yếu tố quan trọng khi lựa chọn dịch vụ Cloud Database giúp doanh nghiệp đảm bảo khả năng mở rộng, hiệu năng và độ tin cậy cho hệ thống.

14/10/2026

Lỗi SQL Server Setup failed: Nguyên nhân và cách khắc phục

Lỗi SQL Server Setup failed do đâu? Tìm hiểu nguyên nhân, cách kiểm tra và khắc phục lỗi để cài đặt SQL Server thành công.