首页 > 解决方案 > 基于按钮动作从Mysql动态检索信息

问题描述

我有一组按钮,其中的文本(按钮文本)基于用户在数据库中创建的部门名称。因此,加载页面时会填充部门按钮。

现在我的问题是当按下部门按钮时,我使用.getText()方法从按钮中获取部门的名称,并使用从该方法获得的文本作为参数,我可以在 SQL where 子句中传递来调用所有项目名称在那个部门之下。

// Actions for the menu button
@FXML

void menu_1(ActionEvent event) {
    Object MenuText = event.getSource();
    Button Menu = null;
    String deptName = "";

    if( Menu != null)
        deptName = Menu.getText();

    Conn = MySQLConnect.ConnectDB();
    Map<Integer, Object> menuItemIdMap =new HashMap<>();
    menuItemIdMap.put(1,Item1);
    menuItemIdMap.put(2,Item2);
    menuItemIdMap.put(3,Item3);
    menuItemIdMap.put(4,Item4);
    menuItemIdMap.put(5,Item5);
    menuItemIdMap.put(6,Item6);
    menuItemIdMap.put(7,Item7);
    menuItemIdMap.put(8,Item8);
    menuItemIdMap.put(9,Item9);
    menuItemIdMap.put(10,Item10);

    String Sql= "SELECT PluIName FROM xpresspos.pluitems  where (PluIDept = '@deptName') ";

    try {
        pst = Conn.prepareStatement(Sql);
        rs = pst.executeQuery();

        // Object menu;
        int index = 0;
        while (rs.next()) {
            index++;
            String pluName = rs.getString("PluIName");

            Button item= (Button) menuItemIdMap.get(index);
            item.setText(pluName);
        }
    } catch(Exception e) {
        JOptionPane.showMessageDialog(null, e);
    }

有谁知道如何创建一个可以解决问题的动态 where 子句?

标签: javamysqljavafx

解决方案


您正在寻找准备好的语句参数

String sql = "SELECT PluIName FROM xpresspos.pluitems WHERE PluIDept = ?"
pst = Conn.prepareStatement(sql);
pst.setString(1, deptName);
rs = pst.executeQuery();

推荐阅读