T20305JD.java





T20305JD.java Expand / Collapse
//************************************************************************************
//
//                 Copyright (c) 2006-2008 by Teradata Corporation
//                         All Rights Reserved
//
//              TERADATA CORPORATION CONFIDENTIAL AND TRADE SECRET
//
//************************************************************************************
//
//  File:       T20305JD.java
//  Header:     none
//  Purpose:    Demonstrate the JDBC API for retrieving information
//              about the types and properties of the parameters in
//              a PreparedStatement.
//
//              The program will:
//                -  Connect as user guest/please
//                -  Prepare an SQL statement
//                -  Obtain and Display Parameter MetaData
//                -  Disconnect.
//
//  JDBC API: java.sql.Connection,
//            java.sql.PreparedStatement,
//            java.sql.PreparedStatement.getParameterMetaData,
//            java.sql.ParameterMetaData.getParameterClassName,
//            java.sql.ParameterMetaData.getParameterCount,
//            java.sql.ParameterMetaData.getParameterMode,
//            java.sql.ParameterMetaData.getParameterType,
//            java.sql.ParameterMetaData.getParameterTypeName,
//            java.sql.ParameterMetaData.getPrecision,
//            java.sql.ParameterMetaData.getScale,
//            java.sql.ParameterMetaData.isNullable,
//            java.sql.ParameterMetaData.isSigned
//
//  Version: Created for Teradata V2R6.2
//
//************************************************************************************

import java.sql.*;

public class T20305JD
{
    // Name of the user able to create, drop, and manipulate tables
    public static String sUser = "guest";
    public static String sPassword = "please";

    public static void main(String args[])
    throws ClassNotFoundException
    {
        // Creation of URL to be passed to the JDBC driver
        String url = "jdbc:teradata://whomooz/TMODE=ANSI,CHARSET=UTF8";

        // Insert statement with parameters. Using this to create a PreparedStatement,
        // we can determine the properties of each parameter.
        String sInsert = "INSERT INTO employee2 VALUES(?,?,?,?,?,?,?)";

        try
        {
            System.out.println(" Sample T20305JD: ");
            System.out.println(" Looking for the Teradata JDBC driver... ");
            // Loading the Teradata JDBC driver
            Class.forName("com.teradata.jdbc.TeraDriver");
            System.out.println(" JDBC driver loaded. ");

            // Attempting to connect to Teradata
            System.out.println(" Attempting to connect to Teradata via" +
                               " the JDBC driver...");

            // Creating a connection object
            Connection con = DriverManager.getConnection(url, sUser, sPassword);
            System.out.println(" User " + sUser + " connected.");
            System.out.println(" Connection to Teradata established. ");

            try
            {
                // Creating a PreparedStatement object from an active connection
                PreparedStatement prepStmt = con.prepareStatement(sInsert);
                System.out.println(" PreparedStatement object created. ");

                try
                {
                    // Create a ParameterMetaData object representing the
                    // properties of the PreparedStatement Parameters
                    ParameterMetaData parmMetaData = prepStmt.getParameterMetaData();

                    // Retrieve the number of parameters returned
                    int parmCount = parmMetaData.getParameterCount();
                    System.out.println(" This PreparedStatement  has " + parmCount
                        + " parameters.");

                    // For every parameter, display it's information.
                    System.out.println(" Displaying parameter information: ");

                    int i = 1;     // Initialize loop counter
                    while(i <= parmCount)
                    {
                        // This code will demonstrate all available methods for
                        // retrieving parameter meta data.

                        System.out.println();
                        System.out.println(" Parameter " + i);
                        System.out.println(" ------------ ");
                        // Display the parameter's Java Class Name
                        System.out.println(" Parameter ClassName: "
                                           + parmMetaData.getParameterClassName(i));
                        // Display the parameter's Mode
                        String modeText = "";
                        switch (parmMetaData.getParameterMode(i)) {
                        case ParameterMetaData.parameterModeIn:
                          modeText += "ModeIn";
                          break;
                        case ParameterMetaData.parameterModeInOut:
                          modeText += "ModeInOut";
                          break;
                        case ParameterMetaData.parameterModeOut:
                          modeText += "ModeOut";
                          break;
                        case ParameterMetaData.parameterModeUnknown:
                          modeText += "ModeUnknown";
                          break;
                        default:
                          break;
                        }
                        System.out.println(" Parameter Mode: "
                                           + modeText);

                        // Display the SQL type of the parameter.
                        System.out.println(" Parameter type: "
                                           + parmMetaData.getParameterType(i));

                        // Display the database-specific type name of the parameter.
                        System.out.println(" Parameter type name: "
                                           + parmMetaData.getParameterTypeName(i));


                        // Display precision: the number of decimal digits
                        // Note: default value is 0.
                        System.out.println(" Parameter precision"
                                           + " (number of decimal places): "
                                           + parmMetaData.getPrecision(i));
                        // Display the number of digits to the right of the
                        // decimal point. Note: default value is 0.
                        System.out.println(" Precision to the right of"
                                           + " the decimal point: "
                                           + parmMetaData.getScale(i));

                        // Display information on whether NULL values are allowed
                        String nullableText = "";
                        switch (parmMetaData.isNullable(i)) {
                          case ParameterMetaData.parameterNullable:
                            nullableText += "Yes";
                            break;
                          case ParameterMetaData.parameterNoNulls:
                            nullableText += "No";
                            break;
                          case ParameterMetaData.parameterNullableUnknown:
                            nullableText += "Unknown";
                            break;
                          default:
                            break;
                        }
                       System.out.println(" NULLs allowed: "
                                          + nullableText);

                       // Display information on whether value is signed
                       System.out.println(" Signed: "
                                          + parmMetaData.isSigned(i));
                        // Increment column counter
                        i++;
                    }
                }
                finally
                {
                    // Close the Preparedstatement
                    prepStmt.close();
                    System.out.println(" PreparedStatement object closed. ");
                }
            }
            finally
            {
                // Close the connection
                System.out.println(" Closing connection to Teradata...");
                con.close();
                System.out.println(" Connection to Teradata closed. ");
            }

            System.out.println(" Sample T20305JD finished. ");
        }
        catch (SQLException ex)
        {
            // A SQLException was generated.  Catch it and display
            // the error information. Note that there could be multiple
            // error objects chained together.
            System.out.println();
            System.out.println("*** SQLException caught ***");

            while (ex != null)
            {
                System.out.println(" Error code: " + ex.getErrorCode());
                System.out.println(" SQL State: " + ex.getSQLState());
                System.out.println(" Message: " + ex.getMessage());
                ex.printStackTrace();
                System.out.println();
                ex = ex.getNextException();
            }

            throw new IllegalStateException ("Sample failed.") ;
        }
    } // End main
} // End class T20305JD



Questions or Feedback
Contact Us
 
Related Resources
Teradata Developer Exchange
Teradata Discussion Forums
White Papers
Teradata Support Services
Teradata User Groups


Find more downloads (including early access and unsupported releases) on Teradata Developer Exchange.
Company Newsroom Site Help Site Map Privacy/Legal Contact Us