Tôi đang định dạng ResultSet
để xuất ra tệp CSV. Vì vậy, tôi thực sự không quan tâm về các loại Java của tập kết quả, ngoài có thể biết nếu đó là văn bản hoặc số.Liệu JDBC ResultSet getString có luôn trả về một biểu diễn String không?
Đảm bảo JDBC getString sẽ luôn đưa ra một chuỗi các giá trị, ít nhất cho các giá trị đơn lẻ (tôi không cần quan tâm đến mình về java.sql.Types.ARRAY
, java.sql.Types.JAVA_OBJECT
và một số khác).
ví dụ: được cung cấp resultSetMetaData.getColumnType(i)
là Types.FLOAT
hoặc Types.BIGDECIMAL
. sẽ rs.GetString(i)
luôn mang lại một số Chuỗi?
tức là có trường hợp getString sẽ ném SQLException hoặc trả về null khi getXXX đưa cho tôi giá trị không?
** Cập nhật trên hướng dẫn được liên kết: ** 'Lưu ý rằng mặc dù phương thức getString được khuyến khích để truy xuất các kiểu SQL CHAR và VARCHAR, có thể truy xuất bất kỳ kiểu SQL cơ bản nào với nó. Bắt tất cả các giá trị với getString có thể rất hữu ích, nhưng nó cũng có những hạn chế của nó. Ví dụ, nếu nó được sử dụng để lấy một kiểu số, getString sẽ chuyển đổi giá trị số thành một đối tượng Java String, và giá trị phải được chuyển đổi về kiểu số trước khi nó có thể hoạt động như một số. Trong trường hợp giá trị được xử lý dưới dạng chuỗi, thì không có nhược điểm nào. – Nefreo