java参数索引超出范围(1>;参数个数,mysql为0-简单登录
我试图用Java(在j creator中)检查用户名和密码,但语法不正确。 如何通过传递用户名和密码在数据库中实现简单的检查?以下是解决问题的代码:java参数索引超出范围(1>;参数个数,mysql为0-简单登录,java,mysql,jcreator,Java,Mysql,Jcreator,我试图用Java(在j creator中)检查用户名和密码,但语法不正确。 如何通过传递用户名和密码在数据库中实现简单的检查?以下是解决问题的代码: try { String userN, passW, host, database; userN = "Michael"; passW = "Blaine22"; host = "localhost"; database = "maintenance_work"; Connection conn = Drive
try
{
String userN, passW, host, database;
userN = "Michael";
passW = "Blaine22";
host = "localhost";
database = "maintenance_work";
Connection conn = DriverManager.getConnection
("jdbc:mysql://"+host+":3306/"+database, userN, passW);
conn.setAutoCommit(false);
ResultSet rs = null;
PreparedStatement pst = null;
Boolean user_Check_pass;
String sql =("SELECT * from operators where user_name = " + user + " and pass_word= " + pass);
pst = conn.prepareStatement(sql);
pst.setString(1, user);
pst.setString(2, pass);
rs = pst.executeQuery();
if (rs.next())
{
System.out.println ("Username and Password correct");
user_Check_pass = true;
}
else
{
System.out.println ("invalid username and password");
user_Check_pass = false;
}
}
catch (SQLException e)
{
e.printStackTrace();
}
return false;
您需要按如下方式更改查询-
String sql = "SELECT * from operators where user_name = ? and pass_word = ?";
?
s是setXXX(index,value)方法所取代的。我只需要将SQL查询字符串更改为以下,以便传递参数!Doh
String sql = "SELECT * from operators where user_name = ? and pass_word = ?";
请阅读JDBC教程或javadoc解释
PreparedStatement
。。。