在jsp页面中,PreparedStatement是未定义的错误

时间:2013-07-01 21:31:33

标签: java database jsp prepared-statement

我是jsp页面的新手,并尝试通过检查数据库中的用户名和密码来创建登录页面。这是代码:

protected void CheckUser(String username, String password)
{

    try {
        connect();
        PreparedStatement preparedStatement = con.PreparedStatement(
        "SELECT * Users WHERE username = ? AND password = ?");
preparedStatement.setString(1,username);
preparedStatement.setString(2,password);
ResultSet rs = (ResultSet) preparedStatement.executeQuery();

    } catch (Exception e) {
        System.out.println("cannot connect");
        e.printStackTrace();
    }

}

我为con.PreparedStatement

收到以下错误
The method PreparedStatement(String) is undefined for the type Connection

任何人都可以帮我吗?

由于

编辑:这是我的连接功能:

 static String dbUrl="jdbc:mysql://localhost:3306/Bank";
  static String username="root";
  static String password="";

  static Connection con=null;

  public static void connect ()
  {
      try {
       Class.forName("com.mysql.jdbc.Driver").newInstance();
       con=(Connection) DriverManager.getConnection(dbUrl,username,password);
       System.out.println("Connected!");

      } 
      catch (Exception e) {

          e.printStackTrace();
          System.out.println("not connected");

      }

  }

3 个答案:

答案 0 :(得分:4)

你拼错了方法Connection#prepareStatement(String sql) throws SQLException

应该是con.prepareStatement,而不是con.PreparedStatement

答案 1 :(得分:2)

  1. 您必须通过PreparedStatement preparedStatement = con.prepareStatement("your Query");
  2. 创建预备声明
  3. 您的查询中需要from关键字。
  4. 因此,您的代码应该看起来像

    PreparedStatement preparedStatement = con.prepareStatement("SELECT * from Users WHERE username = ? AND password = ?");
    

答案 2 :(得分:1)

不确定其他内容,但是你的查询错误,因为它不是拼写错误,会抛出SQLException

应该是

   "SELECT * FROM Users WHERE username = ? AND password = ?"
             ^^^^ 
             ||||
             here