Java 参数索引超出范围
我试图创建一个登录表单,结果显示列索引超出范围。我已经创建了两列,并且使用了两列,但是它显示了错误Java 参数索引超出范围,java,mysql,jdbc,Java,Mysql,Jdbc,我试图创建一个登录表单,结果显示列索引超出范围。我已经创建了两列,并且使用了两列,但是它显示了错误 String url = "jdbc:mysql://localhost:3306/login_form?useSSL=false"; String name = "Vzlys"; String Pass = "Vzlys@1995"; try { Class.forName("com.mysql.jdbc.Driver"); con = Drive
String url = "jdbc:mysql://localhost:3306/login_form?useSSL=false";
String name = "Vzlys";
String Pass = "Vzlys@1995";
try
{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(url,name,Pass);
st = con.prepareStatement("select * from login where username = ? and password = ?");//here login is my table name
st.setString(1,txtusername.getText());
st.setString(2,txtpassword.getText());//error occurs here
rs = st.executeQuery();
JOptionPane.showMessageDialog(null,"Welcome");
ferrysql f = new ferrysql();
f.setVisible(true);
con.close();
st.close();
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null,e);
}
在代码中:
st = con.prepareStatement("query");
表示您的查询是:query
但是如果你使用
String query= "select * from table A where column1 = ?";
st = con.prepareStatement(query);
注意:在此状态中,查询不在倒逗号内
希望这会有所帮助
st=con.preparest陈述(“查询”)代码>
上行显示您的查询是“query”,而不是您可能在程序中使用的变量
txtpassword。getText()
在第行为空
st.setString(2,txtpassword.getText())代码>
在使用at preparedStatement之前,请同时打印txtSerName和txtpassword以检查这两个字段是否包含数据
PreparedStatement st = con.prepareStatement("select * from user where
(userName = ? and password = ?");
st.setString(1,txtusername.getText());
st.setString(2,txtpassword.getText());
这应该行得通伙计们,我尝试了这个查询,但它仍然不起作用。有人能帮我吗?请发布一个完整的异常堆栈跟踪。我尝试了相同的查询,但它不起作用。有人能帮我吗???
catch(异常e){e.printStackTrace();JOptionPane.showMessageDialog(null,e);}
Use e.printStackTrace();要得到准确的误差