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