EasyManua.ls Logo

IBM DB2 User Manual

IBM DB2
585 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Page #130 background imageLoading...
Page #130 background image
Performing positioned UPDATE and DELETE operations in an
SQLJ application
As in DB2 applications in other languages, performing positioned UPDATEs and
DELETEs with SQLJ is an extension of retrieving rows from a result table.
The basic steps are:
1. Declare the iterator.
The iterator can be positioned or named. For positioned UPDATE or DELETE
operations, the iterator must be declared as updatable. To do this, the
declaration must include the following clauses:
implements sqlj.runtime.ForUpdate
This clause causes the generated iterator class to include methods for
using updatable iterators. This clause is required for programs with
positioned UPDATE or DELETE operations.
with (updateColumns=″column-list″)
This clause specifies a comma-separated list of the columns of the result
table that the iterator will update. This clause is optional.
You need to declare the iterator as public, so you need to follow the rules for
declaring and using public iterators in the same file or different files.
If you declare the iterator in a file by itself, any SQLJ source file that has
addressability to the iterator and imports the generated class can retrieve data
and execute positioned UPDATE or DELETE statements using the iterator.
The authorization ID under which a positioned UPDATE or DELETE statement
executes depends on whether the statement executes statically or dynamically.
If the statement executes statically, the authorization ID is the owner of the plan
or package that includes the statement. If the statement executes dynamically
the authorization ID is determined by the DYNAMICRULES behavior that is in
effect. For the IBM Data Server Driver for JDBC and SQLJ, the behavior is
always DYNAMICRULES BIND.
2. Disable autocommit mode for the connection.
If autocommit mode is enabled, a COMMIT operation occurs every time the
positioned UPDATE statement executes, which causes the iterator to be
destroyed unless the iterator has the with (holdability=true) attribute.
Therefore, you need to turn autocommit off to prevent COMMIT operations
until you have finished using the iterator. If you want a COMMIT to occur
after every update operation, an alternative way to keep the iterator from being
destroyed after each COMMIT operation is to declare the iterator with
(holdability=true).
3. Create an instance of the iterator class.
This is the same step as for a non-updatable iterator.
4. Assign the result table of a SELECT to an instance of the iterator.
This is the same step as for a non-updatable iterator. The SELECT statement
must not include a FOR UPDATE clause.
5. Retrieve and update rows.
For a positioned iterator, do this by performing the following actions in a loop:
a. Execute a FETCH statement in an executable clause to obtain the current
row.
b. Test whether the iterator is pointing to a row of the result table by invoking
the PositionedIterator.endFetch method.
114 Application Programming Guide and Reference for Java
â„¢

Table of Contents

Question and Answer IconNeed help?

Do you have a question about the IBM DB2 and is the answer not in the manual?

IBM DB2 Specifications

General IconGeneral
DeveloperIBM
Initial Release1983
LicenseProprietary
Written inC, C++
CategoryDatabase Management System (RDBMS)
Operating SystemLinux, Windows
Programming LanguagesC, C++
Data ModelsRelational
EditionsCommunity, Standard, Advanced
Key Featureshigh availability, scalability

Summary

JDBC application programming

How JDBC applications connect to a data source

Explains how JDBC applications establish a connection to a data source.

Connecting to a data source using the DataSource interface

Details on connecting to a data source using the DataSource interface for portability.

How to determine which type of IBM Data Server Driver for JDBC and SQLJ connectivity to use

Guidance on selecting the appropriate IBM Data Server Driver connectivity type.

JDBC interfaces for executing SQL

Explains the JDBC interfaces used for executing SQL statements.

Data retrieval in JDBC applications

Explains how to retrieve data from tables using ResultSet objects.

SQLJ application programming

Connecting to a data source using SQLJ

Explains how to connect to a data source in an SQLJ program.

SQLJ connection technique 1: JDBC DriverManager interface

Details SQLJ connection using the JDBC DriverManager interface.

SQLJ connection technique 2: JDBC DriverManager interface

Details SQLJ connection using the JDBC DriverManager interface.

SQLJ connection technique 3: JDBC DataSource interface

Details SQLJ connection using the JDBC DataSource interface.

SQLJ connection technique 4: JDBC DataSource interface

Details SQLJ connection using the JDBC DataSource interface.

SQL statement execution in SQLJ applications

Describes executing SQL statements within SQLJ.

Performing positioned UPDATE and DELETE operations in an SQLJ application

Details performing positioned UPDATE and DELETE operations in SQLJ.

Data retrieval in SQLJ applications

Explains how to retrieve result sets using SQLJ iterators.

Controlling the execution of SQL statements in SQLJ

Describes how to control SQL statement execution in SQLJ.

Handling SQL errors and warnings in SQLJ applications

Details handling SQL errors and warnings in SQLJ.

Handling SQL errors in an SQLJ application

Explains how to handle SQL errors in SQLJ applications.

Java stored procedures and user-defined functions

Setting up the environment for Java routines

Details on setting up the WLM and Java environments for Java routines.

Setting up the WLM application environment for Java routines

Describes setting up WLM application environments for Java routines.

WLM address space startup procedure for Java routines

Provides an example of a WLM address space startup procedure for Java routines.

Run-time environment for Java routines

Explains the run-time environment setup for Java routines.

Definition of a Java routine to DB2

Explains how to define a Java routine to DB2.

Writing a Java stored procedure to return result sets

Explains how to write Java stored procedures that return multiple result sets.

Preparing and running JDBC and SQLJ programs

Program preparation for JDBC programs

Details the preparation process for JDBC programs.

Program preparation for SQLJ programs

Outlines the preparation process for SQLJ programs.

Binding SQLJ applications to access multiple database servers

Explains how to bind SQLJ applications to multiple DB2 servers.

Preparing Java routines with no SQLJ clauses to run from a JAR file

Steps to prepare Java routines from JAR files.

Preparing Java routines with SQLJ clauses to run from a JAR file

Recommended method for preparing SQLJ routines from JAR files.

Running JDBC and SQLJ programs

Explains how to run JDBC and SQLJ programs.

JDBC and SQLJ reference information

Data types that map to database data types in Java applications

Summarizes mappings of Java data types to database data types.

Properties for the IBM Data Server Driver for JDBC and SQLJ

Defines how connection properties define the connection to a data source.

currentQueryOptimization

Specifies a value that controls the class of query optimization.

Common IBM Data Server Driver for JDBC and SQLJ properties for DB2 for z/OS and IDS

Lists properties specific to DB2 for z/OS and IDS database servers.

Common IBM Data Server Driver for JDBC and SQLJ properties for DB2 Database for Linux, UNIX, and Windows

Lists properties specific to DB2 Database for Linux, UNIX, and Windows servers.

Installing the IBM Data Server Driver for JDBC and SQLJ

Installing the IBM Data Server Driver for JDBC and SQLJ as part of a DB2 installation

Details on installing the driver as part of DB2 installation.

Jobs for loading the IBM Data Server Driver for JDBC and SQLJ libraries

Describes jobs for loading the driver libraries.

Environment variables for the IBM Data Server Driver for JDBC and SQLJ

Lists required environment variables for the driver.

Customization of IBM Data Server Driver for JDBC and SQLJ configuration properties

Explains how to customize driver configuration properties.

DB2Binder utility

Explains the DB2Binder utility for binding DB2 packages.

Migrating from the JDBC/SQLJ Driver for OS/390 and z/OS to the IBM Data Server Driver for JDBC and SQLJ

To migrate to the IBM Data Server Driver for JDBC and SQLJ, follow these steps

Provides steps for migrating to the IBM Data Server Driver.

Security under the IBM Data Server Driver for JDBC and SQLJ

User ID and password security under the IBM Data Server Driver for JDBC and SQLJ

Details user ID and password security for JDBC connections.

User ID-only security under the IBM Data Server Driver for JDBC and SQLJ

Explains user ID-only security for JDBC connections.

Kerberos security under the IBM Data Server Driver for JDBC and SQLJ

Details Kerberos security support for JDBC and SQLJ.

Configuring the Java Runtime Environment to use SSL

Explains how to configure the Java Runtime Environment for SSL.

JDBC connection concentrator and workload balancing

Problem diagnosis with the IBM Data Server Driver for JDBC and SQLJ

Collecting JDBC trace data

Explains procedures for starting JDBC trace collection.

System monitoring for the IBM Data Server Driver for JDBC and SQLJ

Glossary