如何正确地将参数值传递给sql查询? java,netbeans

时间:2013-11-24 11:47:43

标签: java sql database netbeans oracle11g

我的sql查询语句有问题。如何正确地将参数值传递给sql查询?当我点击按钮时,它显示“INVALID ALTER COMMAND”。 Old_table_name,New_table_name是文本字段

public void Change_table_name(String old_name, String new_name){
    try{
        Statement stmt=con.createStatement();
        ResultSet res=stmt.executeQuery("Alter table"+old_name.trim()+"Rename to"+new_name.trim());
        Table_Database.setModel(DbUtils.resultSetToTableModel(res));

    }catch(Exception e){
        JOptionPane.showMessageDialog(null, e);
    }
}

private void Change_table_nameActionPerformed(java.awt.event.ActionEvent evt) {                                                  
    String old_name = Old_table_name.getText().toString();
    String new_name = New_table_name.getText().toString();
    Change_table_name(old_name, new_name);

}  

3 个答案:

答案 0 :(得分:0)

你在查询中给予一些空间......就像那样..

"Alter table "+old_name.trim()+" Rename to "+new_name.trim());

答案 1 :(得分:0)

您的方法出错,请将其更改为以下方法

    public void Change_table_name(String old_name, String new_name){
try{
    Statement stmt=con.createStatement();
    ResultSet res=stmt.executeQuery("Alter table "+old_name.trim()+" Rename to "+new_name.trim());
    Table_Database.setModel(DbUtils.resultSetToTableModel(res));

}catch(Exception e){
    JOptionPane.showMessageDialog(null, e);
}
}

如果不起作用,请尝试这个,然后给出单引号,

public void Change_table_name(String old_name, String new_name){
try{
    Statement stmt=con.createStatement();
    ResultSet res=stmt.executeQuery("Alter table '"+old_name.trim()+"' Rename to '"+new_name.trim()+"'");
    Table_Database.setModel(DbUtils.resultSetToTableModel(res));

}catch(Exception e){
    JOptionPane.showMessageDialog(null, e);
}
 }

答案 2 :(得分:0)

您还应该使用executeUpdate()而不是executeQuery()。正如Ajeessh指出的那样,“Alter table ...”不会返回任何结果集。