我根据插入到 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/