Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中使用JTextfields将数据更新到oracle数据库中的问题_Java_Sql_Oracle_Swing_Jdbc - Fatal编程技术网

在java中使用JTextfields将数据更新到oracle数据库中的问题

在java中使用JTextfields将数据更新到oracle数据库中的问题,java,sql,oracle,swing,jdbc,Java,Sql,Oracle,Swing,Jdbc,按下更新按钮时,需要执行以下代码段: 注意:t1,t2。,t8是JTextfields。还要注意,CUST_PHONE和ADV接收数据类型number,而其余的都是varchar。 CUST_NAME是假定的主键 theQuery("update gkkdb set CUST_ID='"+t1.getText()+"', CUST_PHONE="+t3.getText()+",CUST_CAT='"+t4.getText()+"',ST_DATE='"+t5.getText()+"',ADV="

按下更新按钮时,需要执行以下代码段: 注意:t1,t2。,t8是JTextfields。还要注意,CUST_PHONE和ADV接收数据类型number,而其余的都是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());
查询(字符串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是我用来更新数据的任何客户名称

是否显示了所有变量的值以确保它们包含数据

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

我希望你能明白。每个“?”都会被替换,您不必担心语法。更容易阅读和发现错误。

您是否显示了所有变量的值以确保它们包含数据

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

我希望你能明白。每个“?”都会被替换,您不必担心语法。更容易阅读和发现错误。

我发现在使用语句时,日期输入是个问题。有一些格式问题。但是现在它已经解决了。我发现当我使用语句时,日期输入是一个问题。有一些格式问题。但现在已经解决了。