Trong bài viết này mình sẽ hướng dẫn các bạn cách kết nối đến cơ sở dữ liệu mysql dùng JDBC trong java.
Nếu bạn đang tìm kiếm một khóa học lập trình Java cho riêng mình, bạn có thể tham khảo khảo học Java cơ bản miễn phí tại đây hoặc Khóa học lập trình Java đầy đủ tại đây.
Kết nối đến cơ sở dữ liệu dùng JDBC
JDBC (Java Database Connectivity) là một API tiêu chuẩn dùng để tương tác với các loại cơ sở dữ liệu quan hệ. JDBC có một tập hợp các class và các Interface dùng cho ứng dụng Java có thể nói chuyện với các cơ sở dữ liệu.
Cách sử dụng JDBC kết nối đến cơ sở dữ liệu
Tạo cơ sở dữ liệu
Đầu tiên các bạn mở MySQL Workbench ( hoặc mysqladmin) để tạo một cơ sở dữ liệu tên là jdbc_db. Trong cơ sở dữ liệu jdbc_db mình sẽ tạo một table sanpham có các trường như sau:
- MaSP: Mã của sản phẩm, đây là khóa chính của bảng.
- TenSP: Tên của sản phẩm.
- Gia: Giá của sản phẩm ( lưu ý giá của sản phẩm thì phải lớn hơn hoặc bằng 0).
- MoTa: Mô tả chi tiết về thông tin của sản phẩm.
Dưới đây là đoạn mã mình dùng để tạo database và table các bạn tham khảo :
create database jdbc_db; use jdbc_db; create table sanpham( MaSP char(10) not null primary key, TenSP char(50) not null, Gia int check(Gia >= 0), MoTa char(200) );
Sau đó mình sẽ chèn thêm một số dữ liệu như sau:
insert into sanpham values('SP001', 'Kem danh rang', 20000, 'Day la kem PS'); insert into sanpham values('SP002', 'Ban chai danh rang', 15000, 'Day la ban chai PS');
Tạo một class SanPham
Dựa vào các trường ở table sanpham thì chúng ta có thể tạo một class SanPham có các thuộc tính như sau:
- MaSP: String
- TenSP: String
- Gia: int
- MoTa: String
Dưới đây là code của class SanPham
package com.company; public class SanPham { private String MaSP; private String TenSP; private int Gia; private String MoTa; public SanPham(String maSP, String tenSP, int gia, String moTa) { MaSP = maSP; TenSP = tenSP; Gia = gia; MoTa = moTa; } public String getMaSP() { return MaSP; } public void setMaSP(String maSP) { MaSP = maSP; } public String getTenSP() { return TenSP; } public void setTenSP(String tenSP) { TenSP = tenSP; } public int getGia() { return Gia; } public void setGia(int gia) { Gia = gia; } public String getMoTa() { return MoTa; } public void setMoTa(String moTa) { MoTa = moTa; } @Override public String toString() { return "SanPham{" + "MaSP='" + MaSP + ''' + ", TenSP='" + TenSP + ''' + ", Gia=" + Gia + ", MoTa='" + MoTa + ''' + '}'; } }
Sử dụng JDBC để kết nối cơ sở dữ liệu
Dưới đây có điểm bạn cần lưu ý :
- DB_NAME: Là tên database của bạn, nếu bạn tạo tên khác với của mình thì phải sửa lại cho đúng.
- DB_URL: Nếu bạn chạy MySQL ở port khác 3306 thì phải đổi lại cho đúng.
- USER_NAME: Tên user bạn đăng nhập vào mysql.
- PASSWORD: Password của user.
Mặc định thì mysql có một user là root với mật khẩu là rỗng.
package com.company; import java.sql.*; public class Main { private static String DB_NAME = "jdbc_db"; private static String DB_URL = "jdbc:mysql://localhost:3306/"; private static String USER_NAME = "sa"; private static String PASSWORD = "sa"; public static Connection getConnection() throws Throwable { try { Class.forName("com.mysql.jdbc.Driver"); Connection connection = DriverManager.getConnection(DB_URL + DB_NAME, USER_NAME, PASSWORD); return connection; } catch (ClassNotFoundException e) { e.printStackTrace(); throw new Throwable("Can't create connection"); } } public static void main(String[] args) { Connection connection = null; try { connection = getConnection(); } catch (Throwable throwable) { throwable.printStackTrace(); System.out.println(throwable.getMessage()); return; } // Read database try { Statement statement = connection.createStatement(); String query = "select * from sanpham;"; ResultSet resultSet = statement.executeQuery(query); while (resultSet.next()){ String maSP = resultSet.getString("MaSP"); String tenSP = resultSet.getString("TenSP"); int gia = resultSet.getInt("Gia"); String moTa = resultSet.getString("MoTa"); SanPham sanPham = new SanPham(maSP, tenSP, gia, moTa); System.out.println(sanPham); } } catch (SQLException e) { e.printStackTrace(); } } }
Sau khi chạy chương trình ta có kết quả như sau:
Bài viết tiếp theo mình sẽ hướng dẫn các bạn một số thao tác cơ bản với JDBC như insert, delete…Mình xin kết thúc tại đây. Cám ơn các bạn đã theo dõi !
Trả lời