SQLJ connection technique 2 uses the JDBC DriverManager interface
as the underlying means for creating the connection.
Procedure
To use SQLJ connection technique 2, follow these steps:
Execute an SQLJ connection declaration
clause.
Doing this generates a connection context
class. The simplest form of the connection declaration clause
is:
#sql context context-class-name;
The
name of the generated connection context class is context-class-name.
Load a JDBC driver by invoking the Class.forName method.
InvokeClass.forName this
way:
Class.forName("com.ibm.db2.jcc.DB2Driver");
This step is unnecessary if you use the JDBC 4.0 driver
or later.
Invoke the JDBC DriverManager.getConnection method.
Doing this creates a JDBC connection object for the connection
to the data source. You can use any of the forms of getConnection that
are specified in "Connect to a data source using the DriverManager
interface with the IBM® Data
Server Driver for JDBC and SQLJ".
The meanings of the url, user,
and password parameters are:
url
A string that specifies the location name that is associated with
the data source. That argument has one of the forms that are specified
in "Connect to a data source using the DriverManager interface
with the IBM Data Server Driver
for JDBC and SQLJ". The form depends on which JDBC driver you
are using.
user and password
Specify a user ID and password for connection to the data source, if the data source to which
you are connecting requires them.
If the data source is a Db2 for z/OS® system, and you do not specify these
parameters, Db2 uses the external
security environment, such as the RACF® security environment,
that was previously established for the user. For a CICS®
connection, you cannot specify a user ID or password.
Invoke the constructor for the connection context class
that you created in step 1
Doing this creates a connection context object that you specify
in each SQL statement that you execute at the associated data source.
The constructor invocation statement needs to be in the following
form:
connection-context-classconnection-context-object=
new connection-context-class(Connection JDBC-connection-object);
The JDBC-connection-object parameter
is the Connection object that you created in step 3.
Example
The following code uses connection technique 2 to create
a connection to location NEWYORK. The connection requires a user ID
and password, and does not require autocommit. The numbers to the
right of selected statements correspond to the previously-described
steps. Figure 1. Using
connection technique 2 to connect to a data source
#sql context Ctx; // Create connection context class Ctx 1
String userid="dbadm"; // Declare variables for user ID and password
String password="dbadm";
String empname; // Declare a host variable
…
try { // Load the JDBC driver
Class.forName("com.ibm.db2.jcc.DB2Driver"); 2
}
catch (ClassNotFoundException e) {
e.printStackTrace();
}
Connection jdbccon= 3
DriverManager.getConnection("jdbc:db2://sysmvs1.stl.ibm.com:5021/NEWYORK",
userid,password);
// Create JDBC connection object jdbccon
jdbccon.setAutoCommit(false); // Do not autocommit
Ctx myConnCtx=new Ctx(jdbccon); 4
// Create connection context object myConnCtx
// for the connection to NEWYORK
#sql [myConnCtx] {SELECT LASTNAME INTO :empname FROM EMPLOYEE
WHERE EMPNO='000010'};
// Use myConnCtx for executing an SQL statement