callablestatement未通过java返回resultset
我遇到了需要从MySQL数据库获取resultset的情况。但问题是,当我使用prep/callable语句时,我不会得到resultset,但当同一个sql查询通过toad或phpmyadmin运行时,它会在控制台上给出正确的预期结果。代码如下:-callablestatement未通过java返回resultset,java,mysql,jdbc,Java,Mysql,Jdbc,我遇到了需要从MySQL数据库获取resultset的情况。但问题是,当我使用prep/callable语句时,我不会得到resultset,但当同一个sql查询通过toad或phpmyadmin运行时,它会在控制台上给出正确的预期结果。代码如下:- Connection connection = null; CallableStatement cstmt = null; String mappedEVentIds = ""; try { conn
Connection connection = null;
CallableStatement cstmt = null;
String mappedEVentIds = "";
try {
connection = CreateDBConnection.createDBConn();
cstmt = connection.prepareCall("select metaEventId from metatologtable where metatologtable.baseEventId in (select `metatologtable`.baseEventId from metatologtable inner join logtable on logtable.baseEventId = metatologtable.baseEventId where metatologtable.metaEventId In"+metaEventIds+")");
ResultSet rs = cstmt.executeQuery();
while(rs.next()){
mappedEVentIds = mappedEVentIds+rs.getString("metaEventId");
}
return mappedEVentIds;
}
catch(Exception e){
}
finally{
closeConnection(connection, cstmt);
}
它不会抛出任何错误,但resultset in empty并且在(rs.next)块catch块为空时不会出现。添加
e.printStackTrace()
以在发生错误时打印此代码正在处理中,catch块将包含更多代码和异常情况下要遵循的操作。但是主要的问题是,为什么同样的东西是通过DB而不是通过java来实现的。在许多开发公司中,这是一种非常严重的犯罪行为。如果你曾经用一个空的catch块将代码提交给VCS,那么你可能会受到官方的谴责。永远不要有空的挡块。你正在接受错误,然后让我们猜测它可能是什么。而且,现在是2015年。Java7于2011年发布。4年后,绝对没有理由使用try…finally
而不是try with resources
。很抱歉,这会使您感到困惑,但是catch块将调用一个方法,然后记录错误。正如我所说,代码处于草稿模式,请相信我,它不会抛出任何错误并正确退出方法。catch块为空。添加e.printStackTrace()
以在发生错误时打印此代码正在处理中,catch块将包含更多代码和异常情况下要遵循的操作。但是主要的问题是,为什么同样的东西是通过DB而不是通过java来实现的。在许多开发公司中,这是一种非常严重的犯罪行为。如果你曾经用一个空的catch块将代码提交给VCS,那么你可能会受到官方的谴责。永远不要有空的挡块。你正在接受错误,然后让我们猜测它可能是什么。而且,现在是2015年。Java7于2011年发布。4年后,绝对没有理由使用try…finally
而不是try with resources
。很抱歉,这会使您感到困惑,但是catch块将调用一个方法,然后记录错误。正如我所说的,代码处于草稿模式,相信我,它不会抛出任何错误并正确退出方法。