Quan sát ResultSet trong JDBC
ResultSet Interface có rất nhiều phương thức khác nhau được sử dụng để giúp bạn quan sát dữ liệu của hàng hiện tại. Tùy theo mục đích, bạn có thể lựa chon getInt, getString, getByte, getArray, getDate, …. Mỗi phương thức này có hai phiên bản, một cho chỉ mục cột và một cho tên cột. ...
ResultSet Interface có rất nhiều phương thức khác nhau được sử dụng để giúp bạn quan sát dữ liệu của hàng hiện tại.
Tùy theo mục đích, bạn có thể lựa chon getInt, getString, getByte, getArray, getDate, …. Mỗi phương thức này có hai phiên bản, một cho chỉ mục cột và một cho tên cột. Dưới đây mình liệt kê một số phương thức:
1. public int getInt(int chi_muc_cot)
Trả về dữ liệu của chỉ mục cột đã cho của hàng hiện tại dưới dạng số nguyên.
2. public int getInt(String ten_cot)
Trả về dữ liệu của tên cột đã cho của hàng hiện tại dưới dạng số nguyên.
3. public String getString(int chi_muc_cot)
Trả về dữ liệu của chỉ mục cột đã cho của hàng hiện tại dưới dạng String.
4. public String getString(String ten_cot)
Trả về dữ liệu của tên cột đã cho của hàng hiện tại dưới dạng String.
5. public Array getArray(int chi_muc_cot)
Trả về dữ liệu của chỉ mục cột đã cho của hàng hiện tại dưới dạng một Mảng.
6. public Array getArray(int ten_cot)
Trả về dữ liệu của tên cột đã cho của hàng hiện tại dưới dạng một Mảng.
Ví dụ minh họa quan sát ResultSet
Dưới đây là ví dụ minh họa việc sử dụng một số phương thức trên để quan sát dữ liệu của hàng và cột trong ResultSet.
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; Statement stmt = 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 ..."); stmt = conn.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); String sql; sql = "SELECT mssv, ho, ten, diemthi FROM sinhvienk60"; ResultSet rs = stmt.executeQuery(sql); // Di chuyen con tro toi hang cuoi cung. System.out.println(" Di chuyen con tro toi hang cuoi cung ..."); rs.last(); // Buoc 5: Lay du lieu tu Result Set System.out.println("Hien thi ban ghi ..."); // 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(" MSSV: " + mssv); System.out.print(" Ho: " + ho); System.out.println(" Ten: " + ten); System.out.print(" Diem Thi: " + diemthi); System.out.print(" ================="); // Di chuyen con tro toi hang dau tien. System.out.println(" Di chuyen con tro toi hang dau tien ..."); rs.first(); // Buoc 6: Lay du lieu tu result set System.out.println("Hien thi ban ghi ..."); // Lay du lieu boi su dung ten cot mssv = rs.getInt("mssv"); diemthi = rs.getInt("diemthi"); ho = rs.getString("ho"); ten = rs.getString("ten"); // Hien thi cac gia tri System.out.print(" MSSV: " + mssv); System.out.print(" Ho: " + ho); System.out.println(" Ten: " + ten); System.out.print(" Diem Thi: " + diemthi); System.out.print(" ================="); // Di chuyen con tro toi hang tiep theo. System.out.println(" Di chuyen con tro toi hang tiep theo ..."); rs.next(); // Buoc 7: Lay du lieu tu result set mssv = rs.getInt("mssv"); diemthi = rs.getInt("diemthi"); ho = rs.getString("ho"); ten = rs.getString("ten"); // Hien thi cac gia tri System.out.print(" MSSV: " + mssv); System.out.print(" Ho: " + ho); System.out.println(" Ten: " + ten); System.out.print(" Diem Thi: " + diemthi); System.out.print(" ================="); // 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(stmt!=null) stmt.close(); }catch(SQLException se2){ } try{ if(conn!=null) conn.close(); }catch(SQLException se){ se.printStackTrace(); }// Ket thuc khoi finally }// Ket thuc khoi try System.out.println(" code24h chuc cac ban hoc tot!"); }// Ket thuc main }// Ket thuc ViDuJDBC
Sao chép và dán ví dụ trên trong ViDuJDBC.java, sau đó biên dịch và chạy chương trình Java trên sẽ cho kết quả sau: