Я вставляю значения целой строки jtable в базу данных оракула на основе ISBN, вставленного в txtField.
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 index 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). в зависимости от isbn, вставленного в txtField, необходимо вставить в корзину таблицы (oracle) всю строку, которая появляется в jtable. (значения jtable берутся из таблицы "книга" (оракул).
вы устанавливаете только одну строку в 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 уже существует. В этом случае вы должны обновить запись.