我的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);
}
答案 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 ...”不会返回任何结果集。