****************************************************************************** * (c) Copyright IBM Corp. 2007 All rights reserved. * * The following sample of source code ("Sample") is owned by International * Business Machines Corporation or one of its subsidiaries ("IBM") and is * copyrighted and licensed, not sold. You may use, copy, modify, and * distribute the Sample in any form without payment to IBM, for the purpose of * assisting you in the development of your applications. * * The Sample code is provided to you on an "AS IS" basis, without warranty of * any kind. IBM HEREBY EXPRESSLY DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR * IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Some jurisdictions do * not allow for the exclusion or limitation of implied warranties, so the above * limitations or exclusions may not apply to you. IBM shall not be liable for * any damages you suffer as a result of using, copying, modifying or * distributing the Sample, even if IBM has been advised of the possibility of * such damages. * ****************************************************************************** * * README for JDBC Samples on Windows * * The <install_path>\sqllib\samples\java\jdbc directory contains this README * file. Where <install_path> is the location of DB2 9.7 on your hard drive. * The default location for <install_path> is * C:\Program Files\IBM * * This README describes how to build and run jdbc sample code for DB2 9.7. * The DB2 9.7 jdbc samples are located in the following directory: * <install_path>\sqllib\samples\java\jdbc * * Copy the files from this directory to your working directory prior to * building the sample programs. The sample programs directory is * typically read-only on most platforms and some samples produce output * files that require write permissions on the directory. * * WARNING: Some of these samples may change your database or database * manager configuration. Execute the samples against * a test database only, such as the DB2 SAMPLE database. * ****************************************************************************** * * Prepare your DB2 sample development environment * * 1) Copy the files in <install_path>\sqllib\samples\java\jdbc\* to your * working directory and ensure that directory has write permission. * * 2) Modify the CLASSPATH to include: * <install_path>\sqllib\java\db2java.zip * <install_path>\sqllib\java\db2jcc.jar * <install_path>\sqllib\java\db2jcc_license_cu.jar * <install_path>\sqllib\java\<jdkDirName>\lib * <install_path>\sqllib\lib * <install_path>\sqllib\function * <install_path>\sqllib\java\sqlj.zip * where <jdkDirName> is the name of the * jdk directory under <install_path>\sqllib\java. * * Modify the PATH to include <install_path>\sqllib\java\<jdkDirName>\bin, * <install_path>\sqllib\lib. * * All samples should be run and built in a DB2 Command Window. * The DB2 Command Window is needed to execute db2 specific commands. * You can follow the step below to open DB2 Command window. * From the Start Menu click Start --> Programs --> IBM DB2 --> * <DB2 copy name> --> Command Line Tools --> Command Window. * * Please make sure that JDK_PATH( db2 * database manager configuration parameter) is * pointing to the <install_path>\sqllib\java\<jdkDirName>. * * To see the dbm cfg parameter value, run the following from db2 * command window and look for the value of JDK_PATH. * db2 get dbm cfg * * 3) Start the Database Manager with the following command: * db2start * * 4) Create the sample database with the following command: * db2sampl * * 5) Connect to the database with the following command: * db2 connect to sample * * 6) To build Stored Procedures and User Defined Functions, ensure * that you have write permission on the * <install_path>\sqllib\function directory. * * 7) cd to the directory containing the files copied in step 1. * ****************************************************************************** * * Building DB2 Samples * * There are two ways to build DB2 samples: using a nmake utility or * using javac compiler. * * o To build samples using the nmake utility see * 'BUILDING SAMPLES USING nmake UTILITY'. * o To build samples using javac compiler or when you do not * have a compatible nmake utility see 'BUILDING * SAMPLES USING JAVAC COMPILER'. * ****************************************************************************** * * *** BUILDING SAMPLES USING nmake UTILITY *** * * If you have a compatible nmake utility on your system, you * can use the makefile provided. Such a nmake utility may be * provided by another language compiler. Modify the PATH * variable to include the directory containing the nmake * utility. * * Depending on your environment, the makefile might have to be * modified.For more details refer to the 'VARIABLES' section * in the makefile. * * Execute the appropriate 'nmake' command in your working * directory: * * o nmake <program name> - builds the sample identified by * <program name> * Do not include the file extension for the * program name. E.g. nmake DbAuth * For any dependencies refer to the individual sample. * * o nmake srv - builds only samples that can be run on the * server,including routines (stored procedures and User * Defined Functions). * * o nmake rtn - builds only routines. * * o nmake call_rtn - builds only client programs that call * routines. * * o nmake client_run - builds only programs that run * completely on the client (not ones that call routines). * * o nmake all_client - builds all client samples (all * programs in the 'call_rtn' and 'client_run' categories). * * o nmake all - builds all supplied sample programs including * routines, stored procedures and UDFs. * * After compiling the sample, run it using normal java invocation: * java <program_name> * * Note: * The makefile provided will only work if a compatible nmake * executable program is resident on your system in a directory * included in your PATH variable. Such a nmake utility may be * provided by another language compiler. * ******************************************************************************* * * *** BUILDING SAMPLES USING JAVAC COMPILER *** * * As an alternative to the makefile, the javac compiler * can be used to build the jdbc samples. * * If you do not have a compatible nmake utility you can use * the javac bytecode compiler to build JDBC programs. * * Building and Executing Standalone Samples * ----------------------------------------- * * o Build the general utility class called Util.java. * javac Util.java * * o Build the sample program * javac <program name>.java * * o After compiling the sample, run it using normal java * invocation * java <program_name> * * Building and Executing Stored Procedures * ---------------------------------------- * * o Build the server file using: * javac <Ser_prog_name> * copy the resulting .class file * to the sqllib\function directory. * * o Build store procedure using build file: * spcat * * o Build the corresponding client file sample using: * javac <Client_prog_name>.java * * o Run the client sample using normal java invocation: * java <Client_prog_name> * * Building and Executing User Defined Functions: * ---------------------------------------------- * * o Build the server file sample using: * javac <Ser_prog_name> * copy the resulting .class file * to the sqllib\function directory. * * o Build the User Defined Functions using build files: * udfcat or udfjcat * * o Build the corresponding client file sample using: * javac <Client_prog_name>.java * * o Run the client sample using normal java invocation: * java <Client_prog_name> * ****************************************************************************** * * Common files * * README - this file! * makefile - Makefile for sample programs * Util.java - utilities used by most programs * ****************************************************************************** * * JDBC Samples Design * * The JDBC sample programs form an object-based design reflecting the * component nature of DB2. Related samples demonstrate a specific level * of database programming. Each level is identified by the first two * characters of the sample name. Here are the database levels * represented by the samples: * * Identifier DB2 Level * * Ap Applet Level. * Il Installation Image Level. * Db Database Level. * Tb Table Level. * Dt Data Type Level. * Ud UDF Level. * Sp Stored Procedure Level. * * Also, there are tutorial samples that demonstrate how to implement * Java GSS-API Plugin and how to use the plugin to get a DB2 connection * using IBM DB2 Universal Driver (JCC driver). These programs begin * with "JCC". * ****************************************************************************** * * JDBC Sample Descriptions * * The following are the JDBC sample files included with DB2. For more * information on the sample programs, refer to the program source * files. * ****************************************************************************** * * Applet Level * * Applt.html - HTML file for Applt.java * Applt.java - How to create applets * ****************************************************************************** * * Installation Image Level * * IlInfo.java - How to get and set installation level information. * ****************************************************************************** * * ADMIN_CMD stored procedure samples (program files that deal with * using SQL ADMIN_CMD() Stored Procedures) * * AdmCmdAutoCfg.java - How to autoconfigure a database * AdmCmdContacts.java - How to add, update and drop contacts and * contactgroups * AdmCmdDescribe.java - How to describe table and indexes * AdmCmdExport.java - How to export data * AdmCmdImport.java - How to import data * AdmCmdOnlineBackup.java - How to perform online backup * AdmCmdQuiesce.java - How to quiesce tablespaces and database * AdmCmdUpdateCfg.java - How to update, reset Database and Database * Manager Configuration Parameters * ****************************************************************************** * * Database Level * * DbAuth.java - How to grant\display\revoke authorities at * database level. * DbConn.java - How to connect and disconnect from a database. * DbInfo.java - How to get and set information at a database * level. * DbMCon.java - How to connect and disconnect from multiple * databases. * DbNative.java - How to translate a statement that contains an * ODBC escape clause to a data source specific * format. * DbRsHold.java - How to use result set cursor holdability * DbSeq.java - How to create, alter and drop a sequence in a * database. * DbUse.java - How to work with database objects. * GetDBCfgParams.java - How to get DB CFG Parameters. * GetDBMCfgParams.java - How to get DBM CFG Parameters. * GetLogs.java - How to get customer view of diagnostic log * file entries. * TrustedContext.java - How to establish an explicit trusted connection and * switching of the user. * ****************************************************************************** * * Table Level * * GetMessage.java - How to get error message in the required locale * with token replacement. * ImplicitCasting.java- To demonstrate use of implicit casting. * LargeRid.java - How to enable Large RIDs support on both new * tables\tablespaces and existing * tables\tablespaces. * SetIntegrity.java - How to perform online SET INTEGRITY on a table. * ScalarFunctions.java- How to use scalar functions and special register. * TbAST.java - How to use staging table for updating deferred * AST. * TbCompress.java - How to create tables with null and default * value compression option. * TbConstr.java - How to work with table constraints. * TbCreate.java - How to create, alter, and drop tables. * TbGenCol.java - How to use generated columns. * TbIdent.java - How to use identity columns. * TbMerge.java - How to use the MERGE statement. * TbInfo.java - How to get and set information at a table * level. * TbInTrig.java - How to use INSTEAD OF triggers. * TbMod.java - How to modify information in a table. * TbOnlineInx.java - How to create and reorg indexes on a table. * TbPriv.java - How to grant\display\revoke privileges at a * table level. * TbRead.java - How to read information in a table. * TbRowcompress.java - To demonstrate row compression and automatic * dictionary creation on a table. * TbRunstats.java - How to perform runstats on a table. * TbSel.java - How to select from each of: insert, update, * delete. * TbTemp.java - How to use Declared Temporary Table. * TbTrig.java - How to use a trigger on a table. * TbUMQT.java - How to use user materialzed query tables * (summary tables). * TbUnion.java - How to insert through a UNION ALL view. * ****************************************************************************** * * Data Type Level * * DtInfo.java - How to get information on data types. * DtLob.java - How to read and write LOB data. * DtUdt.java - How to create\use\drop user defined distinct types. * ****************************************************************************** * * UDF Level * * UDFcli.java - Call the UDFs in UDFsrv.java. * UDFCreate.db2 - CLP script to catalog the Java UDFs contained in * UDFsrv.java. * UDFDrop.db2 - CLP script to uncatalog the Java UDFs contained in * UDFsrv.java. * UDFjcli.java - Call the UDFs in UDFjsrv.java. * UDFjCreate.db2 - CLP script to catalog the Java UDFs contained in * UDFjsrv.java. * UDFjDrop.db2 - CLP script to uncatalog the Java UDFs contained in * UDFjsrv.java. * UDFjsrv.java - Provide UDFs to be called by UDFjcli.java. * UDFsCreate.db2 - CLP script to catalog the Java UDFs contained in * UDFsqlsv.java. * UDFsDrop.db2 - CLP script to uncatalog the Java UDFs contained in * UDFsqlsv.java. * UDFsqlcl.java - Call the UDFs in UDFsqlsv.java. * UDFsqlsv.java - Provide UDFs to be called by UDFsqlcl.java. * UDFsrv.java - Provide UDFs to be called by UDFcli.java. * ****************************************************************************** * * Stored Procedure Level * * SpCreate.db2 - CLP script to issue CREATE PROCEDURE statements. * SpDrop.db2 - CLP script to drop stored procedures from the * catalog. * SpClient.java - Client application that calls the stored procedures. * SpServer.java - Stored procedure functions built and run on the * server. * bonus_calculate.db2 - CLP script to issue CREATE PROCEDURE for * Arrays_Sqlpl.java. * stack_functions.db2 - CLP script to issue CREATE PROCEDURE for * Array_Stack.java sample. * Arrays_Sqlpl.java - Client application that calls the SQL stored * procedure created in bonus_calculate.db2. * Array_Stack.java - Client application that calls the SQL stored * procedure created in stack_functions.db2. ****************************************************************************** * * Java Beans Samples * * CreateEmployee.java - How to create an employee record. * GeneratePayroll.java - How to generate payroll reports by * department. * ****************************************************************************** * * Java GSS-API Plugin Samples * * JCCKerberosPlugin.java - How to implement a GSS-API Plugin that * does Kerberos authentication using IBM * DB2 Universal Driver. * JCCKerberosPluginTest.java - How to use JCCKerberosPlugin to get a * DB2 Connection using IBM DB2 Universal * Driver. * JCCSimpleGSSPlugin.java - How to implement a GSS-API Plugin that * does userid and password checking using * IBM DB2 Universal Driver. * JCCSimpleGSSContext.java - implement a GSSContext to be used by * JCCSimpleGSSPlugin * JCCSimpleGSSCrednetial.java - implement a GSSCredential to be used by * JCCSimpleGSSPlugin * JCCSimpleGSSException.java - implement a GSSException to be used by * JCCSimpleGSSPlugin * JCCSimpleGSSName.java - implement a GSSName to be used by * JCCSimpleGSSPlugin * JCCSimpleGSSPluginTest.java - How to use JCCSimpleGSSPlugin to get a * DB2 Connection using IBM DB2 Universal * Driver. * ******************************************************************************