Java PreparedStatement抛出语法错误
我正在使用PreparedStatements准备一个查询,当我使用condition参数硬编码te查询时,它运行良好 但如果参数是从setString()方法传递的,则抛出错误 在错误日志中,上面我的查询看起来不错Java PreparedStatement抛出语法错误,java,mysql,jdbc,prepared-statement,Java,Mysql,Jdbc,Prepared Statement,我正在使用PreparedStatements准备一个查询,当我使用condition参数硬编码te查询时,它运行良好 但如果参数是从setString()方法传递的,则抛出错误 在错误日志中,上面我的查询看起来不错 public JSONObject getLinkedInMessages(String compId) { linlogger.log(Level.INFO, "Called getLinkedInMessages method");
public JSONObject getLinkedInMessages(String compId)
{
linlogger.log(Level.INFO, "Called getLinkedInMessages method");
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
JSONObject resObj = new JSONObject();
JSONArray tempArray = new JSONArray();
try
{
conn = InitOrGetConnection();
String query = "select * from linkedin_page_messages where company_id = ?";
PreparedStatement pst=conn.prepareStatement(query);
pst.setString(1, compId);
System.out.println("\n\n"+pst.toString());
rs= pst.executeQuery(query);
// process resultset logics
}
catch(Exception e)
{
System.out.println(e);
linlogger.log(Level.INFO, "Exception occured "+e.toString());
}
}
PreparedStatements有什么问题吗?从中删除参数
rs= pst.executeQuery(query);
改为
rs= pst.executeQuery();
如果您在
pst.executeQuery(查询)中传递查询
作为参数,则此传递的query
字符串优先于在conn.prepareStatement(query)中传递的query
字符串由于在查询中(从linkedin\u页面的消息中选择*,其中公司id=?
),您无法传递参数,因此您会得到错误。从
rs= pst.executeQuery(query);
改为
rs= pst.executeQuery();
如果您在pst.executeQuery(查询)中传递查询
作为参数,则此传递的query
字符串优先于在conn.prepareStatement(query)中传递的query
字符串由于在查询中(从linkedin\u页面的消息中选择*,其中公司id=?
),您无法传递参数,因此您会得到错误。从
rs= pst.executeQuery(query);
改为
rs= pst.executeQuery();
如果您在pst.executeQuery(查询)中传递查询
作为参数,则此传递的query
字符串优先于在conn.prepareStatement(query)中传递的query
字符串由于在查询中(从linkedin\u页面的消息中选择*,其中公司id=?
),您无法传递参数,因此您会得到错误。从
rs= pst.executeQuery(query);
改为
rs= pst.executeQuery();
如果您在pst.executeQuery(查询)中传递查询
作为参数,则此传递的query
字符串优先于在conn.prepareStatement(query)中传递的query
字符串由于在查询中(从linkedin\u页面的消息中选择*,其中公司id=?
),您无法传递参数,因此您会得到错误。删除此行中的参数:
rs= pst.executeQuery(query);
一定是
rs= pst.executeQuery();
因为该语句是在PreparedStatement pst=conn.prepareStatement(查询)处准备的代码>
execute(String sql)
继承自并将执行语句(sql),而不准备它。删除此行中的参数:
rs= pst.executeQuery(query);
一定是
rs= pst.executeQuery();
因为该语句是在PreparedStatement pst=conn.prepareStatement(查询)处准备的代码>
execute(String sql)
继承自并将执行语句(sql),而不准备它。删除此行中的参数:
rs= pst.executeQuery(query);
一定是
rs= pst.executeQuery();
因为该语句是在PreparedStatement pst=conn.prepareStatement(查询)处准备的代码>
execute(String sql)
继承自并将执行语句(sql),而不准备它。删除此行中的参数:
rs= pst.executeQuery(query);
一定是
rs= pst.executeQuery();
因为该语句是在PreparedStatement pst=conn.prepareStatement(查询)处准备的代码>
execute(String sql)
继承自并将在未准备的情况下执行语句(sql)。查看错误消息,linkedin页面中似乎有一个空格
查看错误消息,linkedin页面中似乎有一个空格
查看错误消息,在linkedin\u page\u mess ages
中似乎有一个空格查看错误消息,在PreparedStatement
上的linkedin\u page\u mess ages
中似乎有一个空格,execute(String)
必须引发异常(参见javadoc),然而,它在MySQL上这样做只是偶然的。在PreparedStatement
上,execute(String)
必须抛出一个异常(参见javadoc),然而它在MySQL上这样做只是偶然的。在PreparedStatement
上,execute(String)
必须抛出一个异常(参见javadoc),然而,它在MySQL上这样做只是偶然的。在PreparedStatement
上,execute(String)
必须抛出一个异常(参见javadoc),然而它在MySQL上这样做只是偶然的。