Я пытаюсь изменить только 1 столбец и строку при нажатии кнопки, а также обновить mySQL в соответствии со строкой. Мне удалось написать код, но он изменил весь столбец в строку вместо выбранной строки. Я пытаюсь изменить только значение выбранной строки. Как я могу это сделать?
private void jButtonBorrowActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
DefaultTableModel model = (DefaultTableModel) jTableBooks1.getModel();
int row = jTableBooks1.getSelectedRow();
String notavail = model.getValueAt(row, 2).toString();
notavail = "Not Available";
PreparedStatement ps;
String query = "UPDATE `Books` SET `Availability`=?";
try {
ps = dbConnect.getConnection().prepareStatement(query);
ps.setString(1, notavail);
ps.executeUpdate();
JOptionPane.showMessageDialog(null, "Book Borrowed Successfully!");
BookMenu bm = new BookMenu();
bm.setVisible(true);
bm.setLocationRelativeTo(null);
this.dispose();
} catch (SQLException ex) {
Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex);
}
}
public ArrayList<Books> booksList(){
ArrayList<Books> booksList = new ArrayList<>();
PreparedStatement ps;
ResultSet rs;
String query = "SELECT * FROM `Books`";
try {
ps = dbConnect.getConnection().prepareStatement(query);
rs = ps.executeQuery();
Books book;
while (rs.next()){
book = new Books(rs.getString("author"),rs.getString("bookname"),rs.getString("ISBN"), rs.getString("Course"),rs.getString("Year"),rs.getString("Availability"));
booksList.add(book);
}
} catch (SQLException ex) {
Logger.getLogger(Register.class.getName()).log(Level.SEVERE, null, ex);
}
return booksList;
}
public void showBooks(){
ArrayList<Books>list = booksList();
DefaultTableModel model = (DefaultTableModel)jTableBooks1.getModel();
Object[] row = new Object[6];
for(int i=0;i<list.size();i++){
row[0] =list.get(i).getAuthor();
row[1] =list.get(i).getBookname();
row[2] = list.get(i).getAvailability();
model.addRow(row);
}
Как уже упоминалось выше, я хотел бы изменить только данные в выбранной строке. Приложено изображение того, как это и как я хочу, чтобы это было.