The correct answer to the question is B. The row you are positioned on is deleted from the ResultSet and from the database.
The deleteRow()
method of the ResultSet
interface deletes the current row from the ResultSet
object and from the underlying database table. This means that the row will no longer be visible in the ResultSet
object, and it will also be deleted from the database.
The deleteRow()
method only works if the ResultSet
object is updatable. An updatable ResultSet
object is one that can be used to modify data in the database. To create an updatable ResultSet
object, you must set the CONCUR_UPDATABLE
property of the Statement
object that you use to execute the query.
The deleteRow()
method does not throw any exceptions. If you try to delete a row from a ResultSet
object that is not updatable, the method will simply do nothing.
Here is an example of how to use the deleteRow()
method:
import java.sql.*;
public class DeleteRowExample {
public static void main(String[] args) throws SQLException {
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/mydatabase", "username", "password");
Statement statement = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
String sql = "SELECT * FROM customers";
ResultSet resultSet = statement.executeQuery(sql);
// Move the cursor to the first row.
resultSet.first();
// Delete the current row.
resultSet.deleteRow();
// Close the connection.
connection.close();
}
}
This code will delete the first row in the customers
table.