使用Mysql在Java中编写多个where子句

使用Mysql在Java中编写多个where子句,java,mysql,Java,Mysql,下面的代码是我编写的代码,当我通过单击鼠标或按键选择j表上的行时,可以获取“每月折旧”的值。但当我单击行或按键时,它只选择“每月折旧”的第一个值。我知道的问题来自where语句,但似乎无法解决 if(evt.getKeyCode()==KeyEvent.VK_DOWN || evt.getKeyCode()==KeyEvent.VK_UP) { try{ int row =dep_report.getSelectedRow();

下面的代码是我编写的代码,当我通过单击鼠标或按键选择j表上的行时,可以获取“每月折旧”的值。但当我单击行或按键时,它只选择“每月折旧”的第一个值。我知道的问题来自where语句,但似乎无法解决

if(evt.getKeyCode()==KeyEvent.VK_DOWN || evt.getKeyCode()==KeyEvent.VK_UP)
        {
           try{
          int row =dep_report.getSelectedRow();
          String Table_click=(dep_report.getModel().getValueAt(row, 0).toString());
          String sql ="select Date_Acquired 'Date Acquired',Serial_Number 'Serial Number',"
                + " Description 'Description',Cost_Of_Acquisition 'Cost Of Acquisition',"
                + "Monthly_Depreciation 'Monthly Depreciation',Accumulated_Depreciation 'Accumulated                      Depreciation',Net_Book_Value 'Net Book Value'"
                + ",asset_update.Branch_Area 'Branch Area',Depts_name 'Department Name' ,User 'User',"
                + "Status 'Status' from items,asset_update where items.items_No = asset_update.items_No &&'"+Table_click+"'";
          pst = conn.prepareStatement(sql);
          rs = pst.executeQuery();
          if(rs.next()){
                String add1 = rs.getString("Monthly Depreciation");
                MonthlyDep.setText(add1);
            }
        }
        catch(Exception e)
        {
        JOptionPane.showMessageDialog(null, e);    
        }  
非常感谢您的帮助。

在您的sql中

where items.items_No = asset_update.items_No &&'"+Table_click+"'";
&&不适用于sql,您可能需要

where items.items_No = asset_update.items_No and items.someThing= '"+Table_click+"'";

请使用Java命名约定,并为事物赋予适当的名称
Table\u click
是一个可怕的变量名

但是,您能描述一下所选行的第一列中的表模型中是什么吗

您似乎将其附加到查询中,如果查询中不包含有效的SQL部分,则该语句将无法正常工作。在where子句中,通常根据值检查列。我怀疑你的表格模型是否写了这样的内容,更可能的是你的表格模型在这个位置上有价值


还要确保正确使用准备好的语句。永远不要将值直接放在您创建的SQL字符串中,也不要为SQL注入创建完美的入口点。使用以下内容创建语句后,请指定值:
pst.setString(1,Table_click)

您能格式化您的代码吗?