Sets an Integer parameter in a PreparedStatement to either a value or null. - Java java.sql

Java examples for java.sql:PreparedStatement

Description

Sets an Integer parameter in a PreparedStatement to either a value or null.

Demo Code

/*//from   ww w . j a v a 2s .co  m
 * $Id: DbUtil.java 1566 2009-11-01 16:11:16Z amandel $
 *
 * Copyright 2006, The jCoderZ.org Project. All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are
 * met:
 *
 *    * Redistributions of source code must retain the above copyright
 *      notice, this list of conditions and the following disclaimer.
 *    * Redistributions in binary form must reproduce the above
 *      copyright notice, this list of conditions and the following
 *      disclaimer in the documentation and/or other materials
 *      provided with the distribution.
 *    * Neither the name of the jCoderZ.org Project nor the names of
 *      its contributors may be used to endorse or promote products
 *      derived from this software without specific prior written
 *      permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS" AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
//package com.java2s;

import java.io.StringReader;

import java.sql.PreparedStatement;

import java.sql.SQLException;

import java.sql.Timestamp;
import java.sql.Types;

public class Main {
    /**
     * Sets a parameter in a PreparedStatement to either a value or null.
     *
     * @param pstmt the prepared statement
     * @param paramIndex the parameter index of the parameter to be set
     * @param value the value to which the parameter must be set
     * @throws SQLException if a database access error occurs.
     */
    public static void setIntegerOrNull(PreparedStatement pstmt,
            int paramIndex, Integer value) throws SQLException {
        setParameterOrNull(pstmt, paramIndex, value, Types.INTEGER);
    }

    private static void setParameterOrNull(PreparedStatement pstmt,
            int paramIndex, Object value, int type) throws SQLException {
        if (value != null) {
            switch (type) {
            case Types.VARCHAR:
            case Types.CHAR:
                pstmt.setString(paramIndex, (String) value);
                break;
            case Types.CLOB:
                final String strVal = (String) value;
                pstmt.setCharacterStream(paramIndex, new StringReader(
                        strVal), strVal.length());
                break;
            case Types.TIMESTAMP:
                final Timestamp tstampVal = (Timestamp) value;
                pstmt.setTimestamp(paramIndex, tstampVal);
                break;
            case Types.INTEGER:
                final Integer intVal = (Integer) value;
                pstmt.setInt(paramIndex, intVal.intValue());
                break;
            default:
                throw new RuntimeException("Unexpected SQL type " + type
                        + " encountered");
            }
        } else {
            pstmt.setNull(paramIndex, type);
        }
    }
}

Related Tutorials