当前位置: 首页 > 知识库问答 >
问题:

如何在Java中将sql查询作为参数传递给其他sql查询?

闻人浩波
2023-03-14

我写了一个代码来管理一个咖啡馆,所以在框架中我添加了一个JTable,每次我从JComboBox中选择一个项目,它都应该显示在JTable中。为此,我添加了一个按钮,对于它的操作,我确保每次单击它时,它都将从JComboBox中单击的项存储在数据库中,然后将从数据库中获取的项存储在JTable中。但问题是JTable有两列,而JComboBox中的选择只有一列。因此,另一列必须从其他数据库调用,这意味着我必须在其他数据库中调用sql查询,我不知道如何做到这一点。我尝试了下面的代码,但它给了我一个错误“您的SQL语法有一个错误;请检查与您的MariaDB服务器版本相对应的手册,以便在第1行'produit'附近使用正确的语法”

b2.AddActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){

            try {
                Class.forName("com.mysql.jdbc.Driver");
                Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/café", "root",
                        "ata1");

                Statement statement = connection.createStatement();
                ResultSet resultat = statement.executeQuery ( "SELECT prix FROM commande_existantes WHERE "+ cb.getSelectedItem() + "IN produit" );
                Statement stmt = connection.createStatement();
                stmt.executeUpdate("INSERT INTO commande_existante VALUES ('" + cb.getSelectedItem() + "'," +resultat+ ")");

    } catch (Exception a) {
        a.printStackTrace();
    }
    }
    });

共有1个答案

卫振
2023-03-14

你可能想要这样的东西:

Statement statement = connection.createStatement();
ResultSet resultat = 
    statement.executeQuery ( "SELECT prix FROM commande_existantes " +
                             " WHERE produit = " + cb.getSelectedItem() );
if (rs.next) {
    stmt.executeUpdate("INSERT INTO commande_existante VALUES " + 
                       "('" + cb.getSelectedItem() + "'," + 
                              resultat.getDouble("prix")+ ")");
}

我假设“produit”是“commande_existantes”中的列名--所以您只想找到“produit”的值是您选择的值的行。在SQL中,“In”用于在列表中查找在“In”后面指定的值。-但是查询已经查看了表中的所有行,查找与“where”子句的匹配项,所以只需要“=”比较。

ResultSet可能表示一个值表,这些值是您所运行的查询的答案,因此您需要移动到一行(使用“next()”),然后获得您想要的列值(在本例中,使用调用“getdouble()”。

 类似资料:
  • 问题内容: 我有一个整数或字符串列表,需要将其作为Delphi DataSet的参数传递。怎么做? 这是一个例子。MyQuery类似于: 我将参数设置为列表或数组或其他内容: 它将导致此查询发送到sql服务器: 如果该解决方案也可以与字符串一起使用,则执行以下查询会更好: 变得: 我相信这是一个简单的问题,但是“ IN”并不是搜索网络的好关键字。 请回答如何在IDE中配置参数,查询以及如何传递参数

  • 问题内容: 我有一个由一列值组成的数据框,我想将其作为参数传递来执行以下sql查询: 因此,我尝试了许多其他事情: 传递数据帧值的正确方法是什么? 注意:我使用的是Microsoft SQL Server,因此查询格式需要与我一样。 问题答案: 这能满足您的需求吗? 然后,您应该能够查询而无需更多参数。

  • 问题内容: 我想将数组作为参数传递给SqlQuerySpec,以便在构建对天蓝色的db数据库的查询时可以在IN表达式中使用它。我想做的是像我们对常规参数(字符串,整数等)所做的事情: 但是,这种方式是行不通的。我还有其他方法可以将数组作为参数传递吗?谢谢。 问题答案: 您的查询应如下所示: 那么您可以将其作为数组传递,并检查该数组是否包含文档中属性中具有的值。 参考: https://docs.m

  • 在变换的中间,我从表ABC中创建COL1、COL2和COL3、COL4、COL5。 我通常按如下方式转换这些类型的脚本,然后在查找组件中将列与col1到col5匹配: 我想检查:1-我的方法正确吗?我的意思是,如果记录的数量很高,那么我们可能会面临这个问题,然而,这个查询只返回单行记录。 2-如果我想使用第一种方法,我如何传递参数?我试着去读以前的帖子(以前的解决方案),但问题是我处于一个转换的中

  • 问题内容: 我正在使用RODBC软件包访问R中的sql数据库。我无法找到有关如何将向量从R作为向量传递给sql的任何有用信息。 我想将id向量传递给sql而不是对其进行硬编码。 问题答案: 新包装对此有最佳答案。它允许使用任何R对象,并将其自动转换为SQL https://db.rstudio.com/dplyr/

  • 问题内容: 该文档讨论了使用numba的作为的参数。我需要带有附加参数的相同内容。 我基本上是想做这样的事情: 但是,它不起作用,因为应该是/并且不能将它们转换为。我收到以下错误消息: 我没有找到有关如何从Numba中提取值的任何信息。在C语言中,应该类似于—在Numba中可以做同样的事情吗? 问题答案: 1.通过传递额外的参数 该文件说: 如果用户希望改善集成性能,则可以使用以下签名之一: 该是