如何在 JDBC 中向 ResultSet 中插入行?
您可以将表的某些内容作为 ResultSet 检索,并直接向其中插入新行。为此,首先,您需要确保 ResultSet 是可更新的。
ResultSet 接口的 moveToInsertRow() 方法将光标导航到您需要插入下一条记录的位置。因此,使用此方法将光标移动到适当的位置以插入行。
ResultSet 接口的 updateXXX() 方法允许您将值插入或更新到 ResultSet 对象中。
使用以下方法向新行添加值,例如如果您需要在第 1 列插入一个整数值,并在第 2 列插入 String 值,则可以使用 updateInt() 和 updateString() 方法执行此操作,如下所示
rs.updateInt(1, integerValue); rs.updateString(2, "stringValue");
insertRow() 方法将行插入到 ResultSet 中以及表中。
因此,使用此方法将上述创建的行插入到结果集对象和表中。
示例
假设我们在数据库中有一个名为 Employees 的表格,其内容如下
+----+---------+--------+----------------+ | Id | Name | Salary | Location | +----+---------+--------+----------------+ | 1 | Amit | 3000 | Hyderabad | | 2 | Kalyan | 4000 | Vishakhapatnam | | 3 | Renuka | 6000 | Delhi | | 4 | Archana | 96000 | Mumbai | | 5 | Sumith | 11000 | Hyderabad | | 6 | Rama | 11000 | Goa | +----+---------+--------+----------------+
以下示例将此表格的内容作为 ResultSet 对象检索,并将新记录插入到 ResultSet 以及表格中。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class InsertRowToResultSet {
public static void main(String[] args) throws Exception {
//Registering the Driver
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
//Getting the connection
String url = "jdbc:mysql:///testdb";
Connection con = DriverManager.getConnection(url, "root", "password");
//Creating a Statement object
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
//Retrieving the data
ResultSet rs = stmt.executeQuery("select * from Employees");
//Printing the contents of the Result Set
System.out.println("Contents of the Result Set");
while(rs.next()) {
System.out.print("ID: " + rs.getInt("id"));
System.out.print(", Salary: " + rs.getInt("Salary"));
System.out.print(", Name: " + rs.getString("Name"));
System.out.println(", Location: " + rs.getString("Location"));
}
System.out.println();
rs.moveToInsertRow();
rs.updateInt(1, 7);
rs.updateString(2, "Santosh");
rs.updateInt(3, 96000);
rs.updateString(4, "Mumbai");
rs.insertRow();
//Retrieving the contents of result set again
System.out.println("Contents of the ResultSet after inserting another row in to it");
rs.beforeFirst();
while(rs.next()) {
System.out.print("ID: " + rs.getInt("id"));
System.out.print(", Salary: " + rs.getInt("Salary"));
System.out.print(", Name: " + rs.getString("Name"));
System.out.println(", Location: " + rs.getString("Location"));
}
}
}输出
Contents of the Result Set ID: 1, Salary: 3000, Name: Amit, Location: Hyderabad ID: 2, Salary: 4000, Name: Kalyan, Location: Vishakhapatnam ID: 3, Salary: 6000, Name: Renuka, Location: Delhi ID: 4, Salary: 96000, Name: Archana, Location: Mumbai ID: 5, Salary: 11000, Name: Sumith, Location: Hyderabad ID: 6, Salary: 11000, Name: Rama, Location: Goa Contents of the ResultSet after inserting another row in to it ID: 1, Salary: 3000, Name: Amit, Location: Hyderabad ID: 2, Salary: 4000, Name: Kalyan, Location: Vishakhapatnam ID: 3, Salary: 6000, Name: Renuka, Location: Delhi ID: 4, Salary: 96000, Name: Archana, Location: Mumbai ID: 5, Salary: 11000, Name: Sumith, Location: Hyderabad ID: 6, Salary: 11000, Name: Rama, Location: Goa ID: 7, Salary: 96000, Name: Santosh, Location: Mumbai
广告
数据结构
网络
RDBMS
操作系
Java
iOS
HTML
CSS
Android
Python
C 语言
C++
C#
MongoDB
MySQL
Javascript
PHP