JDBC Tutorials - Herong's Tutorial Examples - v3.14, by Herong Yang
insertRow() - Inserting New Rows through ResultSet Objects
This section describes how to insert rows into target tables through ResultSet objects.
A ResultSet object with update capability can also be used to insert new rows into database tables. All you need to do are:
I wrote the following sample program to test this feature:
/* DerbyResultSetInsertRow.java
* Copyright (c) HerongYang.com. All Rights Reserved.
*/
import java.sql.*;
public class DerbyResultSetInsertRow {
public static void main(String [] args) {
Connection con = null;
try {
con = DriverManager.getConnection("jdbc:derby://localhost/TestDB");
// Create a Statement for scrollable ResultSet
Statement sta = con.createStatement(
ResultSet.TYPE_FORWARD_ONLY,
ResultSet.CONCUR_UPDATABLE);
// Catch the ResultSet object
ResultSet res = sta.executeQuery(
"SELECT * FROM Profile WHERE 1=2");
// Check ResultSet's updatability
if (res.getConcurrency() == ResultSet.CONCUR_READ_ONLY) {
System.out.println("ResultSet non-updatable.");
} else {
System.out.println("ResultSet updatable.");
}
// Move the cursor to the insert row
res.moveToInsertRow();
// Set the new first name and last name
res.updateString("FirstName", "Lucy");
res.updateString("LastName", "Harrington");
res.updateString("Point", "123.456");
res.updateString("BirthDate", "1977-07-07");
res.updateString("ModTime", "2007-01-01 01:01:01.001");
// Store the insert into database
res.insertRow();
// Move the cursor back to the current row
res.moveToCurrentRow();
System.out.println("Row inserted ok.");
// Close ResultSet and Statement
res.close();
sta.close();
con.close();
} catch (Exception e) {
System.err.println("Exception: "+e.getMessage());
e.printStackTrace();
}
}
}
Also notice that I used "1=2" as the WHERE condition to purposely generate an empty ResultSet object. The program executed correctly:
ResultSet updatable. Row inserted ok.
Table of Contents
JDBC (Java Database Connectivity) Introduction
Installing and Running Derby (Java DB)
Derby (Java DB) JDBC DataSource Objects
Derby (Java DB) - DML Statements
►Derby (Java DB) - ResultSet Objects of Queries
ResultSet Cursor and Scrollability
ResultSet Cursor Initial Position: Before First Row
Retrieving Column Values with getXXX() Methods
ResultSet Default Type: Forward-only
Scrollable ResultSet and Moving Cursor Backward
ResultSet Objects with Update Capability
►insertRow() - Inserting New Rows through ResultSet Objects
updateXXX() - Updating Column Values for Row Update or Insert
deleteRow() - Deleting Rows through ResultSet Objects
Derby (Java DB) - PreparedStatement
Summary of JDBC Drivers and Database Servers