簡體   English   中英

使用Java中的JTextfields將數據更新到oracle數據庫中的問題

[英]Issue in updating data into oracle database using JTextfields in java

在按下“更新”按鈕時,需要執行以下代碼段:注意: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。

您是否顯示了所有變量的值以確保它們包含數據?

客戶ID是字符串還是整數?

在任何情況下,請對SQL使用PreparedStatement以避免錯誤。

一個簡單的例子讓您開始:

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();

希望您能明白。 每個“?” 被替換,您不必擔心語法。 更容易閱讀和發現錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM