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

com.j256.ormlite.stmt.SelectArg Maven / Gradle / Ivy

Go to download

Lightweight Object Relational Model (ORM) for persisting objects to SQL databases.

There is a newer version: 6.1
Show newest version
package com.j256.ormlite.stmt;

import com.j256.ormlite.field.SqlType;

/**
 * An argument to a select SQL statement. After the query is constructed, the caller can set the value on this argument
 * and run the query. Then the argument can be set again and the query re-executed. This is equivalent in SQL to a ?
 * argument.
 * 
 * 

* NOTE: If the argument has not been set by the time the query is executed, an exception will be thrown. *

* *

* NOTE: For protections sake, the object cannot be reused with different column names. *

* * @author graywatson */ public class SelectArg extends BaseArgumentHolder { private boolean hasBeenSet = false; private Object value = null; /** * Constructor for when the value will be set later with {@link #setValue(Object)}. */ public SelectArg() { super(); // value set later } /** * This constructor is only necessary if you are using the {@link Where#raw(String, ArgumentHolder...)} and similar * methods. * * @param columnName * Name of the column this argument corresponds to. * @param value * Value for the select-arg if know at time of construction. Otherwise call {@link #setValue(Object)} * later. */ public SelectArg(String columnName, Object value) { super(columnName); setValue(value); } /** * This constructor is only necessary if you are using the {@link Where#raw(String, ArgumentHolder...)} and similar * methods. * * @param sqlType * Type of the column that this argument corresponds to. Only necessary if you are using the * {@link Where#raw(String, ArgumentHolder...)} and similar methods. * @param value * Value for the select-arg if know at time of construction. Otherwise call {@link #setValue(Object)} * later. */ public SelectArg(SqlType sqlType, Object value) { super(sqlType); setValue(value); } /** * This constructor is only necessary if you are using the {@link Where#raw(String, ArgumentHolder...)} and similar * methods. * * @param sqlType * Type of the column that this argument corresponds to. Only necessary if you are using the * {@link Where#raw(String, ArgumentHolder...)} and similar methods. */ public SelectArg(SqlType sqlType) { super(sqlType); } /** * Constructor for when the value is known at time of construction. You can instead use the {@link #SelectArg()} * empty constructor and set the value later with {@link #setValue(Object)}. * *

* WARNING, This constructor sets the _value_ not the column-name. To set the column-name only, use the * {@link #SelectArg(String, Object)} and pass a null as the value. *

*/ public SelectArg(Object value) { setValue(value); } @Override protected Object getValue() { return value; } @Override public void setValue(Object value) { this.hasBeenSet = true; this.value = value; } @Override protected boolean isValueSet() { return hasBeenSet; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy