All Downloads are FREE. Search and download functionalities are using the official Maven repository.

liquibase.executor.jvm.SqlParameter Maven / Gradle / Ivy

The newest version!
package liquibase.executor.jvm;

/**
 * Object to represent a SQL parameter definition.
 * 

*

Parameters may be anonymous, in which case "name" is null. * However, all parameters must define a SQL type according to {@link java.sql.Types}. * * @author Spring Framework * @see java.sql.Types */ class SqlParameter { /** * The name of the parameter, if any */ private String name; /** * SQL type constant from java.sql.Types */ private final int sqlType; /** * Used for types that are user-named like: STRUCT, DISTINCT, JAVA_OBJECT, named array types */ private String typeName; /** * The scale to apply in case of a NUMERIC or DECIMAL type, if any */ private Integer scale; /** * Create a new anonymous SqlParameter, supplying the SQL type. * * @param sqlType SQL type of the parameter according to java.sql.Types */ public SqlParameter(int sqlType) { this.sqlType = sqlType; } /** * Create a new anonymous SqlParameter, supplying the SQL type. * * @param sqlType SQL type of the parameter according to java.sql.Types * @param typeName the type name of the parameter (optional) */ public SqlParameter(int sqlType, String typeName) { this.sqlType = sqlType; this.typeName = typeName; } /** * Create a new anonymous SqlParameter, supplying the SQL type. * * @param sqlType SQL type of the parameter according to java.sql.Types * @param scale the number of digits after the decimal point * (for DECIMAL and NUMERIC types) */ public SqlParameter(int sqlType, int scale) { this.sqlType = sqlType; this.scale = scale; } /** * Create a new SqlParameter, supplying name and SQL type. * * @param name name of the parameter, as used in input and output maps * @param sqlType SQL type of the parameter according to java.sql.Types */ public SqlParameter(String name, int sqlType) { this.name = name; this.sqlType = sqlType; } /** * Create a new SqlParameter, supplying name and SQL type. * * @param name name of the parameter, as used in input and output maps * @param sqlType SQL type of the parameter according to java.sql.Types * @param typeName the type name of the parameter (optional) */ public SqlParameter(String name, int sqlType, String typeName) { this.name = name; this.sqlType = sqlType; this.typeName = typeName; } /** * Create a new SqlParameter, supplying name and SQL type. * * @param name name of the parameter, as used in input and output maps * @param sqlType SQL type of the parameter according to java.sql.Types * @param scale the number of digits after the decimal point * (for DECIMAL and NUMERIC types) */ public SqlParameter(String name, int sqlType, int scale) { this.name = name; this.sqlType = sqlType; this.scale = scale; } /** * Copy constructor. * * @param otherParam the SqlParameter object to copy from */ public SqlParameter(SqlParameter otherParam) { this.name = otherParam.name; this.sqlType = otherParam.sqlType; this.typeName = otherParam.typeName; this.scale = otherParam.scale; } /** * Return the name of the parameter. */ public String getName() { return this.name; } /** * Return the SQL type of the parameter. */ public int getSqlType() { return this.sqlType; } /** * Return the type name of the parameter, if any. */ public String getTypeName() { return this.typeName; } /** * Return the scale of the parameter, if any. */ public Integer getScale() { return this.scale; } /** * Return whether this parameter holds input values that should be set * before execution even if they are null. *

This implementation always returns true. */ public boolean isInputValueProvided() { return true; } /** * Return whether this parameter is an implicit return parameter used during the * results processing of the CallableStatement.getMoreResults/getUpdateCount. *

This implementation always returns false. */ public boolean isResultsParameter() { return false; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy