Xin chào các bạn ! Hôm nay mình sẽ hướng dẫn các bạn cách sử dụng JDBC kết nối tới cơ sở dữ liệu MySQL. Với JDBC các bạn có thể sử dụng các câu truy vấn SQL để thêm, xóa, sửa dữ liệu trên database.
Tạo cơ sở dữ liệu trong MYSQL
Chúng ta sẽ tạo ra một database tên là jdbc_db, bên trong sẽ có một table sanpham có các trường như sau:
- MaSP: Mã của sản phẩm
- TenSP: Tên của sản phẩm
- Gia: Giá của sản phẩm
- MoTa: Mô tả của sản phẩm
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) );
Các bạn có xem thêm chi tiết cách tạo database và kết nối tới database tại đây.
Tạo JDBC kết nối đến cơ sở dữ liệu MYSQL
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"); } }
Đầu tiên các bạn cần khai báo các tham số cần thiết như DB_NAME, USER_NAME, PASSWORD để có thể kết nối đến MySQL. Lưu ý : Một số bạn không dùng port 3306 thì phải sửa lại DB_URL cho phù hợp.
Thêm dữ liệu vào một table
Để có thể thực hiện một câu lệnh sql thì bạn cần phải tạo một đối tượng Statement từ connection. Ở đây mình sẽ thực hiện một câu query để chèn dữ liệu vào MySQL.
public static boolean insertData(){ try { Connection connection = getConnection(); Statement statement = connection.createStatement(); String query = "insert into sanpham values('SP001','Dong ho', 120000,'DOng ho treo tuong');"; boolean result = statement.execute(query); connection.close(); return result; } catch (Throwable throwable) { throwable.printStackTrace(); } return false; }
Với cách là trên thì bạn dễ thấy là mỗi lần bạn insert data vào cơ sở dữ liệu thì bạn phải tạo một câu lệnh sql mới. Để tối ưu câu lệnh sql hơn thì chúng ta sử dụng cách như sau:
public static boolean insertData(){ try { Connection connection = getConnection(); //Statement statement = connection.createStatement(); //String query = "insert into sanpham values('SP001','Dong ho', 120000,'DOng ho treo tuong');"; //boolean result = statement.execute(query); String query = "insert into sanpham values(?, ?, ?, ?);"; PreparedStatement preparedStatement = connection.prepareStatement(query); preparedStatement.setString(1, "SP003"); preparedStatement.setString(2, "Dong Ho"); preparedStatement.setInt(3, 120000); preparedStatement.setString(4, "Dong ho treo tuong"); boolean result = preparedStatement.execute(); connection.close(); return result; } catch (Throwable throwable) { throwable.printStackTrace(); } return false; }
Với cách làm này chúng ta có thể tận dụng lại câu query khi insert nhiều data.
Xóa dữ liệu ở table
public static boolean deleteData(){ try { Connection connection = getConnection(); Statement statement = connection.createStatement(); String query = "delete from sanpham where MaSP='SP001';"; boolean result = statement.execute(query); return result; }catch (Throwable e){ e.printStackTrace(); } return false; }
Sửa dữ liệu ở table
public static boolean updateData(){ try { Connection connection = getConnection(); String query = "update sanpham set TenSP = ?,Gia = ?,MoTa = ? where MaSP = ?;"; PreparedStatement preparedStatement = connection.prepareStatement(query); preparedStatement.setString(1, "Dong Ho"); preparedStatement.setInt(2, 120000); preparedStatement.setString(3, "Dong ho treo tuong"); preparedStatement.setString(4, "SP003"); boolean result = preparedStatement.execute(); connection.close(); return result; }catch (Throwable e){ e.printStackTrace(); } return false; }
Tương tự như trên insert data mình sử dụng PreparedStatement để có thể linh động hơn trong việc update dữ liệu.
Nếu trong quá trình làm các bạn có gặp khó khăn gì thì cứ comment phía dưới mình sẽ hỗ trợ. Bài viết của mình đến đây là kết thúc, cám ơn các bạn đã theo dõi !
Để lại một bình luận