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

时间:2019-04-22 00:27:31

标签: java sql eclipse

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

b2.addActionListener(new ActionListener(){             公共无效actionPerformed(ActionEvent e){

gcc

2 个答案:

答案 0 :(得分:0)

您是否有可能想要类似的东西

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()”的调用。

您应该寻找有关JDBC的教程,尤其是如何在SQL中使用参数,而不是像在此处那样将值嵌入SQL中。

答案 1 :(得分:0)

您可以直接使用以下内容:

  

选择的字符串= cb.getSelectedItem();

     

stmt.executeUpdate(“ INSERT INTO commande_existante VALUES('”“ + selected +”',((从commande_existantes WHERE'“ + selected +”'IN('produit')AND ROWNUM <2)中选择prix));