按“更新”按钮,需要执行以下代码段: 注意:t1,t2,。 。 。,t8是JTextfields。另请注意,CUST_PHONE和ADV接收数据类型编号,而其余都是varchar CUST_NAME是假定的主键;
theQuery("update gkkdb set CUST_ID='"+t1.getText()+"', CUST_PHONE="+t3.getText()+",CUST_CAT='"+t4.getText()+"',ST_DATE='"+t5.getText()+"',ADV="+t6.getText()+",END_DATE='"+t7.getText()+"',ADDR='"+t8.getText()+"' where CUST_NAME="+t2.getText());
theQuery(String s)函数如下: -
public void theQuery(String query)
{
Connection con = null;
Statement st= null;
try{
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
con = DriverManager.getConnection("jdbc:oracle:thin:@Localhost:1521:xe","system","qwerty");
System.out.println("Database connected");
st= con.createStatement();
st.executeUpdate(query);
JOptionPane.showMessageDialog(null,"Customer Updated!");
} catch(Exception e)
{
JOptionPane.showMessageDialog(null,e.getMessage());
}
}
显示的错误为:ORA-00904:" xxxx" :无效的标识符,其中xxxx是我用于更新数据的任何CUST_NAME。
答案 0 :(得分:2)
您是否显示了所有变量的值以确保它们包含数据?
客户ID是字符串还是整数?
在任何情况下都使用String sql = "UPDATE Page SET Title = ? WHERE Name = ?";
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString( 1, textField1.getText() );
stmt.setString( 2, textField2.getText() );
stmt.executeUpdate();
stmt.close();
来防止SQL出错。
一个简单的例子让你开始:
<!DOCTYPE html>
<html>
<head><script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script></head>
<body>
Password: <input type="password" id="fname" onfocusout="myFunction()">
<div class="password-suggestions description" style="display: block;">
Security hints and tips :
<ul><li>Tip #1 </li>
<li>Tip #2</li></ul></div>
<script>
function myFunction() {
$('div.password-suggestions').hide();
}
</script>
</body>
</html>
我希望你明白这个主意。每个“?”被替换,您不必担心语法。更容易阅读和发现错误。