Cập nhật ResultSet trong JDBC
Tương tự như khi quan sát dữ liệu trong ResultSet, bạn có thể sử dụng rất nhiều phương thức (có 2 phiên bản cho chỉ mục cột và tên cột) của ResultSet Interface để cập nhật dữ liệu. Chẳng hạn như updateArray, updateByte, updateString, updateInt, …
Bạn nên chú ý là các phương thức update này không cập nhật cơ sở dữ liệu cơ sở (Underlying Database). Để cập nhật cơ sở dữ liệu này, bạn nên sử dụng phương thức updateRow hoặc insertRow.
Dưới đây mình miêu tả một số phương thức:
1. public void updateInt(int chi_muc_cot, int x) throws SQLException
Cập nhật giá trị của cột trong hàng hiện tại hoặc trong hàng đang được chèn tới giá trị nguyên x.
2. public void updateInt(int ten_cot, int x) throws SQLException
Cập nhật giá trị của tên cột đã cho trong hàng hiện tại hoặc hàng đang được chèn tới giá trị nguyên x.
3. public void updateString(int chi_muc_cot, String x) throws SQLException
Cập nhật giá trị của cột trong hàng hiện tại hoặc trong hàng đang được chèn tới giá trị x ở dạng chuỗi.
4. public void updateString(int ten_cot, String x)
Cập nhật giá trị của tên cột đã cho trong hàng hiện tại hoặc hàng đang được chèn tới giá trị x ở dạng chuỗi.
...
Ví dụ minh họa cập nhật ResultSet trong JDBC
Ví dụ dưới đây sẽ minh họa các hoạt động INSERT, UPDATE, và DELETE trên một bảng dữ liệu.
package com.vietjack.jdbc;
//Buoc 1: Ban can inport cac package can thiet
import java.sql.*;
public class ViDuJDBC {
// Ten cua driver va dia chi URL cua co so du lieu
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/sinhvien";
// Ten nguoi dung va mat khau cua co so du lieu
static final String USER = "root";
static final String PASS = "123456";
public static void main(String[] args) {
Connection conn = null;
try{
// Buoc 2: Dang ky Driver
Class.forName("com.mysql.jdbc.Driver");
// Buoc 3: Mo mot ket noi
System.out.println("Dang ket noi toi co so du lieu ...");
conn = DriverManager.getConnection(DB_URL,USER,PASS);
// Buoc 4: Thuc thi truy van
System.out.println("Tao cac lenh truy van SQL ...");
Statement stmt = conn.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
String sql = "SELECT mssv, ho, ten, diemthi FROM sinhvienk60";
ResultSet rs = stmt.executeQuery(sql);
System.out.println("Liet ke result set de tham chieu ...");
printRs(rs);
// Buoc 6: Lap qua result set va tru diemthi di 0.5
// Di chuyen toi vi tri truoc hang dau tien de vong lap while lam viec chinh xac
rs.beforeFirst();
// Buoc 7: Lay du lieu result set
while(rs.next()){
// Lay du lieu boi su dung ten cot
int diemThiMoi = rs.getInt("diemthi") - 0.5;
rs.updateDouble( "diemthi", diemThiMoi );
rs.updateRow();
}
System.out.println("Liet ke result set de hien thi diem thi moi ...");
printRs(rs);
// Chen mot ban ghi vao trong bang.
//Move to insert row and add column data with updateXXX()
System.out.println("Chen mot ban ghi moi ...");
rs.moveToInsertRow();
rs.updateInt("mssv",4);
rs.updateString("ho","Cao Thi Thanh");
rs.updateString("ten","Hien");
rs.updateInt("diemthi",5);
// Ky thac hang vua chen
rs.insertRow();
System.out.println("Liet ke result set de hien thi cac ban ghi ...");
printRs(rs);
// Xoa ban ghi thu hai trong bang.
// Thiet lap vi tri con tro tai hang thu hai
rs.absolute( 2 );
System.out.println("Liet ke ban ghi truoc khi xoa ...");
// Lay du lieu boi su dung ten cot
int mssv = rs.getInt("mssv");
int diemthi = rs.getInt("diemthi");
String ho = rs.getString("ho");
String ten = rs.getString("ten");
// Hien thi cac gia tri
System.out.print("\nMSSV: " + mssv);
System.out.print("\nHo: " + ho);
System.out.println("\nTen: " + ten);
System.out.print("\nDiem Thi: " + diemthi);
System.out.print("\n=================");
// Xoa hang
rs.deleteRow();
System.out.println("Liet ke result set sau khi xoa ...");
printRs(rs);
// Buoc 8: Don sach moi truong va giai phong resource
rs.close();
stmt.close();
conn.close();
}catch(SQLException se){
// Xu ly cac loi cho JDBC
se.printStackTrace();
}catch(Exception e){
// Xu ly cac loi cho Class.forName
e.printStackTrace();
}finally{
// Khoi finally duoc su dung de dong cac resource
try{
if(conn!=null)
conn.close();
}catch(SQLException se){
se.printStackTrace();
}// Ket thuc khoi finally
}// Ket thuc khoi try
System.out.println("\nVietJack chuc cac ban hoc tot!");
}// Ket thuc main
public static void printRs(ResultSet rs) throws SQLException{
// Bao dam rang chung ta bat dau tu hang dau tien
rs.beforeFirst();
while(rs.next()){
// Lay du lieu boi su dung ten cot
int mssv = rs.getInt("mssv");
int diemthi = rs.getInt("diemthi");
String ho = rs.getString("ho");
String ten = rs.getString("ten");
// Hien thi cac gia tri
System.out.print("\nMSSV: " + mssv);
System.out.print("\nHo: " + ho);
System.out.println("\nTen: " + ten);
System.out.print("\nDiem Thi: " + diemthi);
System.out.print("\n=================");
}
System.out.println();
}// Ket thuc printRs()
}// Ket thuc ViDuJDBC
Bạn sao chép, dán và lưu ví dụ trong ViDuJDBC.java, sau đó chạy chương trình Java trên sẽ cho kết quả:
Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.
Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập doanh nghiệp với Java. Khóa học có giá chỉ 400K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học.
Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/ Bạn nào có nhu cầu mua, inbox trực tiếp chị Thu, trợ lý anh Tuyền để hỗ trợ thanh toán qua mã QR ngân hàng Việt Nam, fb: https://www.facebook.com/Thule.59
Anh Tuyền, tác giả khóa học, là cựu sinh viên chương trình đào tạo kĩ sư tài năng của đại học Bách Khoa Hà Nội với hơn 5 năm kinh nghiệm đi làm thực tế doanh nghiệp và cũng là Founder website vietjack.com, web giáo dục phổ biến nhất Việt Nam hiện tại (năm 2025). Java cũng là ngôn ngữ lập trình dễ đi xin việc nhất hiện tại, với mức lương cao, hãy nâng cao kiến thức IT của bản thân mình vì một Việt Nam giàu mạnh.
Loạt bài hướng dẫn của chúng tôi dựa một phần trên nguồn tài liệu của: Tutorialspoint.com
Bài học Java phổ biến tại vietjack.com:
Demo một bài giảng trong khóa học online tại vietjackteam.


Giải bài tập SGK & SBT
Tài liệu giáo viên
Sách
Khóa học
Thi online
Hỏi đáp

