我在写一个通用的Java代码,我想将整数添加到将存储在mysql数据库中的min Heap中。对于我写了下面的代码,如何将ResultSet对象转换为Comparable对象
public void addElement(Comparable value) {
sql = "INSERT INTO testHeap VALUES("+size+","+(int)value+ ") ";
try {
stmt.executeUpdate(sql);
size++;
} catch (SQLException ex) {
Logger.getLogger(HeapMySql.class.getName()).log(Level.SEVERE, null, ex);
}
if(size == 0) throw new IllegalStateException("Shape error");
int index = size - 1;
while(size != 0) {
sql = "SELECT value FROM testHeap WHERE indexnum ="+index;
T val;
try {
val = (T)stmt.executeQuery(sql);
if(myParent(index).compareTo(val) <= 0) break;
swap(parent(index), index);
index = parent(index);
} catch (SQLException ex) {
Logger.getLogger(HeapMySql.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
这将返回下面的异常运行时
异常在线程“主要” java.lang.ClassCastException:com.mysql.jdbc.JDBC4ResultSet不能转换为Java。 lang.Comparable 在Lab03.HeapMySql.addElement(HeapMySql.java:140)
我婉知道如何做到这一点 “VAL =(T)stmt.executeQuery(SQL)” 正确:)
你不能,因为它不是'Comparable.' XY问题。 'ResultSet'不能被转换成任何东西。你究竟在努力完成什么? – EJP 2015-03-14 08:43:46