java - 将值从 jtable 行插入数据库 - IN OUT 错误

标签 java oracle swing insert jtable

我根据插入到 txtField 中的 ISBN,将整行 jtable 的值插入到 oracle 数据库中。

   Connection conn = Connessione.ConnecrDb();
   Statement stmt = null;
   ResultSet emps = null;


    try{

        String sql= "INSERT INTO PROGETTO.CARRELLO (ISBN, DISPONIBILITA, TITOLO, CASA_EDITRICE, CODICE_AUTORE, GENERE, PREZZO)"
                + "VALUES (?,?,?,?,?,?,?)  where isbn=?";

        pst=(OraclePreparedStatement) conn.prepareStatement(sql);

        pst.setString (1, agg_libro_carr.getText());    

     pst.execute();

      JOptionPane.showMessageDialog(null, "BOOK SAVED");

      }

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


    }        

但返回错误 IN/OUT 索引 2 等...

谢谢

编辑:

private void button_carrelloActionPerformed(java.awt.event.ActionEvent evt) {                                                

   Connection conn = Connessione.ConnecrDb();
   Statement stmt = null;
   ResultSet emps = null;


    try{

        String sql= "INSERT INTO PROGETTO.CARRELLO (ISBN, DISPONIBILITA, TITOLO, CASA_EDITRICE, CODICE_AUTORE, GENERE, PREZZO)"
                + "VALUES (?,?,?,?,?,?,?) where isbn=?";

        pst=(OraclePreparedStatement) conn.prepareStatement(sql);

        pst.setString (1, agg_libro_carr.getText()); 
        pst.setString (2, "DISPONIBILITA");  
        pst.setString (3, "TITOLO");  
        pst.setString (4, "CASA_EDITRICE");  
        pst.setString (5, "CODICE_AUTORE");  
        pst.setString (6, "GENERE");  
        pst.setString (7, "PREZZO");
        pst.setString (8, agg_libro_carr.getText());

     pst.execute();

      JOptionPane.showMessageDialog(null, "BOOK SAVED");

      }

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


    }    

我需要它,完成了研究(它有效并填充了 jtable)。根据插入到 txtField 的 isbn 必须插入到表购物车 (oracle) 中,出现在 jtable 中的整行。 (jtable 值取自表“book”(oracle)。

最佳答案

你在 PreparedStatement 中只设置了一个字符串:

String sql= "INSERT INTO PROGETTO.CARRELLO (ISBN, DISPONIBILITA, TITOLO, CASA_EDITRICE, CODICE_AUTORE, GENERE, PREZZO)"
                + "VALUES (?,?,?,?,?,?,?)  where isbn=?";

        pst=(OraclePreparedStatement) conn.prepareStatement(sql);

        pst.setString (1, agg_libro_carr.getText()); 

其他问号是什么?

 "VALUES (?,/*?,?,?,?,?,? The ones are not set!*/ )  where isbn=/*? That one is not set!*/";

因此您的声明无效。

你需要这样的东西:

pst.setString (1, agg_libro_carr.getText());  
pst.setString (2, "VALUE_OF_DISPONIBILITA");  
pst.setString (3, "VALUE_OF_TITOLO");  
pst.setString (4, "CASA_EDITRICE");  
pst.setString (5, "CODICE_AUTORE");  
pst.setString (6, "GENERE");  
pst.setString (7, "PREZZO");
pst.setString (8, agg_libro_carr.getText());

顺便说一句(如果 ISBN 是您的主键)...如果具有该 ISBN 的书已经存在,则插入内容毫无意义。在这种情况下,您应该更新条目。

关于java - 将值从 jtable 行插入数据库 - IN OUT 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26928563/

相关文章:

sql-server - 如何使WHERE子句不区分大小写:从SQL Server查询Oracle链接服务器

mysql - 根据订单列交换 Oracle 中的两条记录

java - System.out.println 到 JTextArea

java - Swing - 如何混合使用 JTextField 和 JTextAreas 并具有相同的视觉外观?

java - 如何使用另一个类的按钮更改 JLabel?

javascript - 隐藏 Vimeo 视频中的选项

java - 使用 Cloud Tools for Eclipse 部署包含 p12 文件的 App Engine 应用程序

java - 如何在 hibernate 标准中使用 CURRENT_DATE 函数?

java - 在 JRE 级别限制密码套件

php - Oracle 绑定(bind)所有 $_POST