Giả sử tôi có một JDBC ResultSet, và tôi gọi phương thức getLong() hoặc gethort().Trong JDBC ResultSet, điều gì sẽ xảy ra khi getLong() hoặc getShort() được gọi trên cột kết quả int?
Đối với loại SQL nào sau đây {SMALLINT, INT, BIGINT} tôi nên nhận được lâu, và loại nào tôi nên gặp lỗi?
Nói cách khác, nếu tôi có INT và tôi muốn có SMALLINT (viết tắt), tôi có nhận được nó hay tôi sẽ gặp lỗi? Tương tự, nếu tôi có INT và muốn BIGINT (một thời gian dài), tôi có nhận được nó hay tôi sẽ gặp lỗi?
Javadocs (liệt kê bên dưới) không nói gì cả.
công dài getLong (int columnIndex) ném SQLException
Retrieves the value of the designated column in the current row
của đối tượng ResultSet này như một lâu trong ngôn ngữ lập trình Java.
Parameters: columnIndex - the first column is 1, the second is 2, ... Returns: the column value; if the value is SQL NULL, the value returned is 0 Throws: SQLException - if a database access error occurs
Tuyệt vời ... Tôi đang viết một trình bao bọc cho ResultSet của JDBC và hy vọng có một cách giải thích rõ ràng về các kiểu int không phụ thuộc vào việc triển khai thực hiện. Cảm ơn bạn đã tìm thấy điều này! – Uri
Bạn có thể gọi DataBaseMetaData.supportsConvert (int fromType, int toType) để xem liệu một triển khai cụ thể có hỗ trợ một chuyển đổi nhất định hay không. – Yishai