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

时间:2013-11-25 08:58:24

标签: java mysql

下面是代码是我写的代码,当我通过鼠标单击或按键选择我的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);    
        }  

我非常感谢帮助,谢谢你。

2 个答案:

答案 0 :(得分:0)

在你的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+"'";

答案 1 :(得分:0)

请使用Java命名约定并为事物命名Table_click是一个可怕的变量名称。

但是,您能在所选行的第一列中描述表模型中的内容吗?

您似乎将它附加到您的查询中,如果它不包含有效的SQL部分,则这对您的语句不起作用。在where子句中,您通常会根据值检查列。我怀疑你的表格模型是否写在那里,更有可能你只是在你的表格模型中有这个位置的值。

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