java - 对于 PreparedStatement ,executeQuery() 不能带有参数的错误
PHP中文网
PHP中文网 2017-04-18 09:23:18
0
4
606
PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(4)
洪涛

PrepareStatement的使用流程如下:

  1. 使用占位符SQL实例化

  2. 调用bindXX方法完成参数绑定

  3. 调用executeUpdate或executeQuery方法,这里不传参数了,因为参数都在1、2步处理了

巴扎黑

你上面已经把sql传给pst了 干嘛还要传给executQuery呢?

刘奇

你的psr.executeQuery(sql),已经传了参数得到结果集了,,不用再传参数了,,

巴扎黑

PreparedStatement 类是用与预处理sql语句的。
例如:
`ResultSet rs = null;
PreparedStatement loginStatement =

           sqlDAO.sqlConnection().prepareStatement("SELECT username,password FROM user_table WHERE username = ? AND password = ?");
        loginStatement.setString(1, username);
        loginStatement.setString(2, password);
        rs = loginStatement.executeQuery();`

?表示占位符,我们可以使用setString(int, String) 等方法来为占位符设置值。其中int 参数为第几个占位符(注意不是从0开始,是数学的第几个)第二个表示参数是我们将要把对应占位符(?)替换的值。这样做可以避免我们的数据库被sql注入。值得注意的是,sql语句关键字不可以被占位符替代,因为占位符会自动为我们指定的String用单引号包裹导致sql语句执行失败。手机码的将就看看

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板