为jdbc查询分配给字符串而不是结果集

时间:2014-08-05 04:18:28

标签: java sql jdbc

我需要获取jdbc查询的输出,但无论我在哪里谷歌,它都会返回一个结果集。但是,它只是一排。这是我的查询

ResultSet rsLocationId = null;

rsLocationId = stmtLocation.executeQuery("SELECT apmcid FROM userbusinesstoapmc WHERE userbusinessid='"+userBusinessKey+"'");

它应该将单个记录作为字符串返回。我怎么转换它?任何想法都将不胜感激。

3 个答案:

答案 0 :(得分:2)

我建议您使用PreparedStatementbind参数,目前您很容易受到SQL Injection攻击。

PreparedStatement ps = null;
ResultSet rs = null;
String result = null;
final String sql = "SELECT apmcid FROM userbusinesstoapmc "
    + "WHERE userbusinessid=?";
try {
  ps = conn.prepareStatement(sql);
  ps.setString(1, userBusinessKey);
  rs = ps.executeQuery();
  if (rs.next()) {
    result = rs.getString("apmcid");
  }
} catch (SQLException e) {
  e.printStackTrace();
} finally {
  if (rs != null) {
    try {
      rs.close();
    } catch (SQLException e) {
      e.printStackTrace();
    }
  }
  if (ps != null) {
    try {
      ps.close();
    } catch (SQLException e) {
      e.printStackTrace();
    }
  }
}

答案 1 :(得分:1)

你可以这样尝试

ResultSet rsLocationId = null;String result="";

rsLocationId = stmtLocation.executeQuery("SELECT apmcid FROM userbusinesstoapmc WHERE userbusinessid='"+userBusinessKey+"'");
if(rsLocationId.next())
{
result=rsLocationId.getString('apmcid');
}

答案 2 :(得分:0)

即使您的特定查询仅返回单个列,如果您希望结果为String,则可能是某些CHAR类型,executeQuery方法返回结果集对象,而不是String对象。因此,您必须处理结果集以获取String数据。 SpringLearner提供了一个如何做到这一点的好例子。