java - 基于按钮动作从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 子句?
解决方案
您正在寻找准备好的语句参数。
String sql = "SELECT PluIName FROM xpresspos.pluitems WHERE PluIDept = ?"
pst = Conn.prepareStatement(sql);
pst.setString(1, deptName);
rs = pst.executeQuery();
推荐阅读
- python - 用 CNN 代替 MLP
- ios - 如何在 Swift 中为此编写类定义?
- ruby-on-rails - 如何处理来自网站的 API 调用,从而显示属于该网站的信息?
- java - SIGAR API 如何计算 CPU 使用率?
- python - 有什么方法可以在 python 的 telnet 命令中放置一个变量?
- google-cloud-sql - 导出 postgres 用户列表以迁移到 GCP 上的新版本
- python - 使用 python SMTP 函数将邮件附件扩展名更改为 .bin
- windows - 在 makefile 中运行命令并将 STDERR / STDOUT 打印到终端和文本文件
- excel - 如何将单元格与列进行比较,如果匹配替换行?
- c++ - 跳过变量初始化格式不正确还是会导致未定义的行为?