如何在Java中使用准备好的语句进行选择查询?

2024-06-25

我曾多次尝试使用准备好的语句,但它返回 SQL 异常。这是我的代码:

public ArrayList<String> name(String mobile, String password) {
    ArrayList<String> getdata = new ArrayList<String>();
    PreparedStatement stmt = null;
    try {
        String login = "select mobile, password from tbl_1 join tbl_2 on tbl_1.fk_id=2.Pk_ID where mobile=? and password=?";

        String data = "select * from tbl_2  where password='" + password + "'";

        PreparedStatement preparedStatement = conn.prepareStatement(login);

        preparedStatement.setString(1, mobile);
        preparedStatement.setString(1, password);

        ResultSet rs = preparedStatement.executeQuery(login);

        Statement stmts = (Statement) conn.createStatement();

        if (rs.next()) {
            System.out.println("Db inside RS");
            ResultSet data = stmts.executeQuery(data);

            while (data.next()) { /* looping through the resultset */

                getdata.add(data.getString("name"));
                getdata.add(data.getString("place"));
                getdata.add(data.getString("age"));
                getdata.add(data.getString("job"));
            }

        }

    } catch (Exception e) {
        System.out.println(e);
    }

    return getdata;
}

运行此程序时,我收到以下 SQL 异常:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? and password=?' at line 1.

有什么建议可以让这项工作成功吗? 任何一段代码都会受到赞赏。


您需要使用:

preparedStatement.executeQuery();

代替

preparedStatement.executeQuery(login);

当你传递一个字符串到executeQuery() that查询是按字面执行的,因此?发送到数据库,然后创建错误。通过传递查询字符串,您不会执行为其传递值的“缓存”准备语句。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Java中使用准备好的语句进行选择查询? 的相关文章

随机推荐

  • LINQWhere(谓词)与FirstOrDefault(谓词)

    以下之间是否存在明显的性能差异 something Where predicate FirstOrDefault and something FirstOrDefault predicate 我倾向于同时使用两者 但我想知道在性能方面是否有
  • 如何在表单提交事件*之后*运行一些 JavaScript?

    我正在处理一个 HTML 表单 可能需要几秒钟才能提交 我想禁用表单中的某些字段after已提交 我可以在表单的处理程序中执行此操作submit事件 但这会引发before表单提交 如果我禁用这些控件 它们的值不会包含在发送到服务器的发布数
  • Plotly:在同一个图中绘制直线和散点图

    我有一个带有 DateTimeIndex 和数字数据列的 pandas DataFrame 我使用它创建了一个折线图px line 我现在想突出显示线上的某些点 为此 我决定覆盖一个散点图 其行是初始 DataFrame 行的子集 我尝试过
  • 具有基本身份验证的 Nginx-ingress Kubernetes 路由

    我无法在我的路径之一上设置基本身份验证 我想拥有 auth由基本身份验证保护的路径 所有其他路径不需要基本身份验证 所以我创建了两个指向同一个后端的入口文件 非身份验证入口 apiVersion extensions v1beta1 kin
  • 在azure databrick中使用pyodbc与SQL服务器连接

    import pyodbc pyodbc connect Driver SQL SERVER Server server name Database database name UID my uid PWD my password Auth
  • 记录语法和求和类型

    我有关于 Haskell 中的总和类型的问题 我想创建一个由两个或多个其他类型组成的总和类型 并且每个类型可能包含多个字段 一个简单的例子是这样的 data T3 T1 a Int b Float T2 x Char deriving Sh
  • ColdFusion 管理员登录和密码恢复

    我最近接手了 CF 网站的开发 但在获取 CF 管理员的登录名和密码时遇到了一些问题 我希望另一个 StackOverflower 能够对获取访问权限有一些见解 我们可以访问 FTP 和任何其他托管相关详细信息 任何有用的见解将不胜感激 打
  • 在Android中如何连接base64编码的字符串?

    请帮我解决这个问题 我有两个字符串用于电子邮件 ID 和密码 例如 String name email protected cdn cgi l email protection String pass abc 我将这两个编码成 Base64
  • 如何对具有相同文件的目录进行 HeatDirectory 2 次或更多次?

    我一直在 BeforeBuild 目标中的 WiX 安装程序项目中使用 HeatDirectory 任务来收集我们在客户端网络上部署的 Web 应用程序的文件 一直工作得很好 我现在想要部署第二组文件 这恰好是一些文档 并且它包含与先前 H
  • Jquery 切换事件与复选框值混淆

    当用户单击复选框时 我使用 Jquery 的切换事件执行一些操作 如下所示 input myId toggle function do stuff function do other stuff 问题是 当我单击复选框时 该复选框没有被选中
  • com.google.android.gcm.GCMBaseIntentService 在哪里?

    我在这里关注 GCM 教程http developer android com guide google gcm gs html http developer android com guide google gcm gs html 在第
  • 就地替换整个 HTML 文档

    我试图避免使用数据 URI 因为我不希望生成的文档存储在浏览器的历史记录中 是否可以就地替换整个 HTML 文档 I tried jQuery html html 但是style信息无法保存 您可能想要这样做 jQuery body htm
  • 合并两个 $or 语句

    我正在尝试执行一个由两个组成的查询 or s Date1 Date2 NULL NULL NULL TODAY NULL TOMRW TODAY TODAY TODAY NULL TOMRW NULL 我已经标记了与星号匹配的行 Date1
  • 如何在C#中查询NTFS磁盘配额?

    我需要能够为给定远程计算机上的所有用户找到这些用户的磁盘配额和实际磁盘使用情况 我需要能够在 C 应用程序中执行此报告 嗯 从技术上讲 这是我已经构建的应用程序的 DLL 插件 但这与这里无关 远程计算机不在同一网络上 但是 执行应用程序的
  • JSP标签的字符集

    关于JSP标签字符集的简单问题
  • GCP - 无法验证自己的身份以调用 Google Cloud 功能

    我有一个名为的云函数rad format text v0 I 电子邮件受保护 cdn cgi l email protection 有权调用它 如下所示 gcloud beta functions get iam policy rad fo
  • 从 GP regs 加载 xmm

    假设您的价值观是rax and rdx你想加载到xmm登记 一种方法是 movq xmm0 rax pinsrq xmm0 rdx 1 虽然速度相当慢 有没有更好的办法 在最近的 Intel 或 AMD 上 你不会在延迟或 uop 计数方面
  • 在 Haskell 中使用 Maybe 类型

    我正在尝试利用 Haskell 中的 Maybe 类型 我有一个查找返回 Maybe 的键 值元组 如何访问 Maybe 包装的数据 例如 我想将 Maybe 包含的整数与另一个整数相加 或者 您可以进行模式匹配 case maybeVal
  • MySQL:长表与宽表

    哪种数据库表设计更高效 就查询性能而言 长表还是宽表 即 这个 id size price 1 S 12 4 1 M 23 1 1 L 33 3 2 S 3 3 2 M 5 3 2 L 11 0 与此相对 id S M L 1 12 4 2
  • 如何在Java中使用准备好的语句进行选择查询?

    我曾多次尝试使用准备好的语句 但它返回 SQL 异常 这是我的代码 public ArrayList