【问题标题】:Java MYSQL Exception in executeQuery()executeQuery() 中的 Java MYSQL 异常
【发布时间】:2012-08-07 09:32:53
【问题描述】:

我得到一个 Java MySQL 异常

@Override

public ResultSet executeQuery (String query, ArrayList<Argument> arguments) throws SQLException
{
    final PreparedStatement pstmt = getPstmt(query, arguments);
    final ResultSet retrievedData = pstmt.executeQuery();
    return retrievedData;
}




//getpstmt()

private PreparedStatement getPstmt (String query, ArrayList<Argument> arguments) throws SQLException
    {
        PreparedStatement pstmt = null;
        try {
            pstmt = connection.prepareStatement(query);

            if (arguments != null) {
                int argPosition = 1;
                for (final Argument arg : arguments) {
                    if (arg.getType() == ARGUMENT_TYPE.INTEGER) {
                        pstmt.setInt(argPosition++, arg.getInt());
                    }
                    else {
                        pstmt.setString(argPosition++, arg.getString());
                    }
                }
            }
        }
        catch (final Exception ex) {
            NmsLogger.writeDebugLog(ex);
            return null;
        }

        return pstmt;

    }



// One instance of calling executeQuery

public String getProperty(String propertyName) 
    {

        try 
        {
            ArrayList<Argument> arguments = new ArrayList<Argument>();
            arguments.add(new Argument(propertyName));

            final java.sql.ResultSet resultset = Application.getDBHandler().executeQuery(SQLQueries.GET_PROPERTY, null);
            Application.getDBHandler().executeQuery(SQLQueries.GET_PROPERTY, arguments);
            if(resultset.next())
            {
                resultset.getString(1);

            }
            return resultset.toString();
        }
        catch (SQLException e)
        {
            NmsLogger.writeDebugLog(e);
            e.printStackTrace();
        }

        return null;
    }

调试以下代码时出现以下错误:

java.sql.SQLException: 没有为参数 1 指定值

有人确实建议了一种解决方法..为什么我会遇到这样的异常?

【问题讨论】:

  • 您能否发布您的查询以及getPstmt中的代码?
  • @JohnTotetWoo 我已经编辑了这个问题。希望你现在明白了。
  • 能否在for (final Argument arg : arguments) {处加个断点,看看arguments是否为空?
  • 您能否向我们展示您正在运行的示例查询?
  • GET_PROPERTY 是一个示例查询。 public static final String GET_PROPERTY = "Select * from app_config where Property = ?";

标签: java mysql exception executequery


【解决方案1】:

您将 null 传递给 executeQuery 而不是此处的参数列表:

Application.getDBHandler().executeQuery(SQLQueries.GET_PROPERTY, null);

因此,查询"Select * from app_config where Property = ?"? 的位置没有值,因此出现异常。

希望这会有所帮助。

【讨论】:

  • @SenthilThanks.this 有帮助,并且几乎没有其他更改。:) 现在很清楚
猜你喜欢
  • 2012-02-11
  • 2023-03-30
  • 2014-07-27
  • 1970-01-01
  • 1970-01-01
  • 2019-03-13
  • 1970-01-01
  • 2012-11-23
  • 2014-02-24
相关资源
最近更新 更多