我想用java创建SQL工具,我先尝试检查命令是true还是false,然后如图所示
现在我想在命令中执行,如果它在数据库中更新返回行数更新,如果它选择行应该返回ResultSet
public Object run(String command){
Boolean flag: runAnyCommand(command);
Object data=nu11;
if(f1ag){
System.out.print1n(“trueeeeeeeeeeee”);
try {
Object s= st.execute(command);
if(s instanceof ResultSet ){
data=(ResultSet) s;
System.out.println(“result set ”);
}
else if(s instanceof Integer){
data=s;
System.out.print1n(“update ant the rows is “+S);
}
} catch (SOLException ex) {
Logger.getLogger(dbOperations.class.getName()).log(Level.SEVERE, hull, ex);
}
该图像包含我在servlet中调用它的方法,例如它返回对象(如果是更新则为boolean,如果是选择则为arraylist)
您向我们展示的代码不正确。 (JDBC)Statement.execute
方法返回boolean
,而不是Object
。当你将它分配给Object
时,它会将其作为Boolean
自动装箱。因此,您尝试获取ResultSet
或Integer
的代码将永远不会被执行。
如果要获取ResultSet
或使用execute(String)
执行的SQL语句的更新计数,则应在getResultSet()
对象上调用getUpdateCount()
或Statement
。
javadoc的Statement.execute(String)
提供了更多细节,并提供了上述方法的链接。