我正在使用 JDBC 开发空间数据库应用程序,现在我在检索插入数据库的多边形的协调器时遇到问题,我得到的是一个基本类型为 Number 的 oracle.sql.Array,我的想法是获取协调器到一个字符串数组中,并让它们一一绘制在地图上
形状.SDO_ORDINATES
号码(79,68,184,125,179,133,189,138,139,229,131,225,127,233,21,175,26,168,18,163,67,73,74,76)
以下是我的代码:
try{
Statement stmt = conn.createStatement();
String fetchBuidling = "select a.shape.sdo_ordinates from buildings a";
ResultSet rs = stmt.executeQuery(fetchBuidling);
while(rs.next()){
ResultSetMetaData metaData = rs.getMetaData();
int columns = metaData.getColumnCount();
Array coordsInfo = rs.getArray(columns);
String[] vertice = (String[]) coordsInfo.getArray();
for(int i = 0 ; i < vertice.length; i++){
System.out.println(vertice[i]);
}
}
错误是"java.lang.ClassCastException: [Ljava.math.BigDecimal; cannot be cast to [Ljava.lang.String;"
;我使用了 Oracle 文档中的代码块,尽管第二个 getArray() 对我来说没有意义,因为在这种情况下它提到 coordsInfo 应该是一个逻辑指针,链接是
http://docs.oracle.com /javase/tutorial/jdbc/basics/array.html#retrieving_array
但是没有第二个 getArray() 我什至无法编译代码,任何人都可以帮忙,我对此感到非常沮丧