PrepareStatement 在 select 查询 java 中不起作用
PrepareStatement not working in select query java
String checkq="select * from "+Dbc.TB_COMPANY+" where cmp_name=? and cmp_id!=?";
pst=con.prepareStatement(checkq);
pst.setString(1,"test"); pst.setString(2,"2")
rs=st.executeQuery(checkq);
显示
您的 SQL 语法有误;查看与您的 MySQL 服务器版本对应的手册,了解在第 1
行的“13a”和 cmp_id!=3' 附近使用的正确语法
您正在调用 st.executeQuery
并传入 checkq
,这让我认为 st
是一个 Statement
实例。 checkq
中的字符串当然不是有效的 SQL 语句——它包含 PreparedStatement
占位符。您应该在 PreparedStatement
上调用 executeQuery
(根本不使用简单的 Statement
):
String checkq="select * from "+Dbc.TB_COMPANY+" where cmp_name=? and cmp_id!=?";
pst=con.prepareStatement(checkq);
pst.setString(1,"test");
pst.setString(2,"2")
// Not: rs=st.executeQuery(checkq);
rs = pst.executeQuery();
String checkq="select * from "+Dbc.TB_COMPANY+" where cmp_name=? and cmp_id!=?";
pst=con.prepareStatement(checkq);
pst.setString(1,"test"); pst.setString(2,"2")
rs=pst.executeQuery(checkq);
您同时使用了 statement 和 preparedStatement
确保使用 preparedStatement
String checkq="select * from "+Dbc.TB_COMPANY+" where cmp_name=? and cmp_id!=?";
pst=con.prepareStatement(checkq);
pst.setString(1,"test"); pst.setString(2,"2")
rs=st.executeQuery(checkq);
显示 您的 SQL 语法有误;查看与您的 MySQL 服务器版本对应的手册,了解在第 1
行的“13a”和 cmp_id!=3' 附近使用的正确语法您正在调用 st.executeQuery
并传入 checkq
,这让我认为 st
是一个 Statement
实例。 checkq
中的字符串当然不是有效的 SQL 语句——它包含 PreparedStatement
占位符。您应该在 PreparedStatement
上调用 executeQuery
(根本不使用简单的 Statement
):
String checkq="select * from "+Dbc.TB_COMPANY+" where cmp_name=? and cmp_id!=?";
pst=con.prepareStatement(checkq);
pst.setString(1,"test");
pst.setString(2,"2")
// Not: rs=st.executeQuery(checkq);
rs = pst.executeQuery();
String checkq="select * from "+Dbc.TB_COMPANY+" where cmp_name=? and cmp_id!=?";
pst=con.prepareStatement(checkq);
pst.setString(1,"test"); pst.setString(2,"2")
rs=pst.executeQuery(checkq);
您同时使用了 statement 和 preparedStatement
确保使用 preparedStatement