Ðối Tượng ResultSet

Một phần của tài liệu Xây dựng dịch vụ chat trên mạng (Trang 74 - 75)

III- Cơ chế truyền nhận trong Java

c.Ðối Tượng ResultSet

Ðối tượng ResultSet là một đối tượng rất quan trọng trong JDBC. Nĩ là một sự trừu tượng hĩa rất cần thiết của một bảng được tổ chức về chiều rộng và cĩ chiều dài khơng được biết trước. Hầu như tất cả các phương thức, kết quả của các truy vấn đều trả về dữ liệu như một ResultSet. Nĩ liên quan đến số tên cột mà ta cĩ thể truy vấn bởi tên. Nĩ cịn gồm cả tên của các hàng mà ta cĩ thể di chuyển suốt từ trên xuống dưới của dãy trong một lần.

Trước khi dùng ResultSet, ta cần phải biết xem cĩ bao nhiêu cột liên quan đến. Thơng tin này được cất trong đối tượng ResultSetMetaData.

ResultSet results;

ResultSetMetaData rsmd; rsmd=results.getMetaData(); numcols=rsmd.getColumnCount();

Khi ta thu được một ResultSet, nĩ chỉ tới hàng đầu tiên. Ta sử dụng phương thức next() để thu thêm các hàng cịn lại, và phương thức trả về False khi khơng cịn hàng nào nữa. Từ khi đem dữ liệu từ một cơ sở dữ liệu, cĩ thể, nĩ sẽ phát ra những biệt lệ. Ta phải luơn đặt hàm lấy kết quả trong một khối try

try {

rsmd= results.getMetaData(); //lấy dữ liệu từ kho MetaData ResultSetMetaData rsmd=results.getMetaData();

int numCols=rsmd.getColumnCount();//tạo biến đếm số cột boolean more=results.next(); //tạo biến cho biết cột đã hết chưa. while(more) for(j=1;j<=numcols;j++) { System.out.print(results.getString(j)); System.out.println(); more=results.next(); } results.close(); } catch(Exception e) } System.out.println(e.getMessage()) ; }

Các bước của chương trình:

- Lấy dữ liệu từ kho MetaData.

- Ðếm số cột bằng phương thức getColumnCount() trong ResultSetMetaData. - Tạo biến đối tượng xem xét số cột đã hết chưa (true : cịn, false : hết). - Trong khi cịn các cột:

- Tạo vịng lặp đếm số cột. - Lấy giá trị tại cột thứ j.

- Gọi tiếp phương thức next() cho các cột cịn lại.

- Ðĩng đối tượng results - Bắt biệt lệ hết cột xảy ra.

- Trả dữ liệu về kho ResultSetMetaData.

Ta cĩ thể thu được dữ liệu trong ResultSet theo nhiều dạng, phụ thuộc vào kiểu dữ liệu được cất trong mỗi cột. Do đĩ, ta cĩ thể thu được nội dung của cột mà khơng cần biết đến số cột hay tên cột.

Chú ý rằng số cột bắt đầu là một (1), khơng phải là khơng (0). Một vài phương thức minh họa cho đối tượng ResulSet sau:

getInt(int): trả về nội dung của cột được đánh số như là một số integer.

getInt(String): Trả về nội dung của cột được đặt tên như là một số integer.

getFloat(int): Trả về nội dung của cột được đánh số như là một số float.

getFloat(String): Trả về nội dung của cột được đặt tên như là một số float.

getDate(int): Trả về ngày tạo lập của cột được đánh số.

getDate(String): Trả về ngày tạo lập của cột được đặt tên.

next(): Chuyển con trỏ tới hàng kế tiếp và trả về false khi hết hàng.

close(): Ðĩng đối tượng ResultSet.

Một phần của tài liệu Xây dựng dịch vụ chat trên mạng (Trang 74 - 75)