Изменение примера данных результирующего набора
В этом примере приложения драйвера Microsoft JDBC для SQL Server демонстрируется извлечение большого набора данных из базы данных SQL Server. Затем с помощью методов объекта SQLServerResultSet вставляется, изменяется, и в конечном итоге удаляется строка данных из набора данных.
Файл кода для этого примера с именем UpdateResultSet.java находится в следующей папке:
\<installation directory>\sqljdbc_<version>\<language>\samples\resultsets
Требования
Чтобы запустить этот пример приложения, необходимо включить в параметр classpath путь к файлу mssql-jdbc.jar. Вам также потребуется доступ к образцу базы данных AdventureWorks2022. См. сведения о том, как настроить classpath в руководстве по использованию драйвера JDBC Driver.
Примечание.
Драйвер Microsoft JDBC для SQL Server предоставляет файлы библиотеки классов mssql-jdbc для использования в зависимости от предпочитаемых параметров среды выполнения Java (JRE). Для получения дополнительных сведений о том, какой JAR-файл выбрать, см. статью Требования к системе для драйвера JDBC.
Пример
Пример кода делает подключение к образцу базы данных AdventureWorks2022. Затем с помощью инструкции SQL с объектом SQLServerStatement выполняется инструкция SQL и помещает данные, возвращаемые в обновляемый объект SQLServerResultSet.
Далее в примере кода используется метод moveToInsertRow для перемещения курсора результирующего набора в строку вставки. Затем он использует ряд методов updateString для вставки данных в новую строку. После этого вызывается метод insertRow для сохранения новой строки данных обратно в базу данных.
После вставки новой строки данных пример кода использует инструкцию SQL для получения ранее вставленной строки. После используется комбинация методов updateString
и updateRow для обновления строки данных и обратного ее сохранения в базе данных.
Наконец образец кода извлекает предварительно обновленную строку данных, затем удаляет ее из базы данных с помощью метода deleteRow.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class UpdateResultSet {
public static void main(String[] args) {
// Create a variable for the connection string.
String connectionUrl = "jdbc:sqlserver://<server>:<port>;encrypt=true;databaseName=AdventureWorks;user=<user>;password=<password>";
try (Connection con = DriverManager.getConnection(connectionUrl);
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);) {
// Create and execute a SQL statement, retrieving an updateable result set.
String SQL = "SELECT * FROM HumanResources.Department;";
ResultSet rs = stmt.executeQuery(SQL);
// Insert a row of data.
rs.moveToInsertRow();
rs.updateString("Name", "Accounting");
rs.updateString("GroupName", "Executive General and Administration");
rs.updateString("ModifiedDate", "08/01/2006");
rs.insertRow();
// Retrieve the inserted row of data and display it.
SQL = "SELECT * FROM HumanResources.Department WHERE Name = 'Accounting';";
rs = stmt.executeQuery(SQL);
displayRow("ADDED ROW", rs);
// Update the row of data.
rs.first();
rs.updateString("GroupName", "Finance");
rs.updateRow();
// Retrieve the updated row of data and display it.
rs = stmt.executeQuery(SQL);
displayRow("UPDATED ROW", rs);
// Delete the row of data.
rs.first();
rs.deleteRow();
System.out.println("ROW DELETED");
}
// Handle any errors that may have occurred.
catch (SQLException e) {
e.printStackTrace();
}
}
private static void displayRow(String title,
ResultSet rs) throws SQLException {
System.out.println(title);
while (rs.next()) {
System.out.println(rs.getString("Name") + " : " + rs.getString("GroupName"));
System.out.println();
}
}
}