
org.tinygroup.jsqlparser.statement.insert.Insert Maven / Gradle / Ivy
/**
* Copyright (c) 1997-2013, www.tinygroup.org ([email protected]).
*
* Licensed under the GPL, Version 3.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.gnu.org/licenses/gpl.html
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.tinygroup.jsqlparser.statement.insert;
import org.tinygroup.jsqlparser.expression.operators.relational.ItemsList;
import org.tinygroup.jsqlparser.schema.Column;
import org.tinygroup.jsqlparser.schema.Table;
import org.tinygroup.jsqlparser.statement.Statement;
import org.tinygroup.jsqlparser.statement.StatementVisitor;
import org.tinygroup.jsqlparser.statement.select.PlainSelect;
import org.tinygroup.jsqlparser.statement.select.Select;
import org.tinygroup.jsqlparser.statement.select.SelectExpressionItem;
import java.util.List;
/**
* The insert statement. Every column name in columnNames
matches
* an item in itemsList
*/
public class Insert implements Statement {
private Table table;
private List columns;
private ItemsList itemsList;
private boolean useValues = true;
private Select select;
private boolean useSelectBrackets = true;
private boolean returningAllColumns = false;
private List returningExpressionList = null;
public void accept(StatementVisitor statementVisitor) {
statementVisitor.visit(this);
}
public Table getTable() {
return table;
}
public void setTable(Table name) {
table = name;
}
/**
* Get the columns (found in "INSERT INTO (col1,col2..) [...]" )
*
* @return a list of {@link org.tinygroup.jsqlparser.schema.Column}
*/
public List getColumns() {
return columns;
}
public void setColumns(List list) {
columns = list;
}
/**
* Get the values (as VALUES (...) or SELECT)
*
* @return the values of the insert
*/
public ItemsList getItemsList() {
return itemsList;
}
public void setItemsList(ItemsList list) {
itemsList = list;
}
public boolean isUseValues() {
return useValues;
}
public void setUseValues(boolean useValues) {
this.useValues = useValues;
}
public boolean isReturningAllColumns() {
return returningAllColumns;
}
public void setReturningAllColumns(boolean returningAllColumns) {
this.returningAllColumns = returningAllColumns;
}
public List getReturningExpressionList() {
return returningExpressionList;
}
public void setReturningExpressionList(List returningExpressionList) {
this.returningExpressionList = returningExpressionList;
}
public Select getSelect() {
return select;
}
public void setSelect(Select select) {
this.select = select;
}
public boolean isUseSelectBrackets() {
return useSelectBrackets;
}
public void setUseSelectBrackets(boolean useSelectBrackets) {
this.useSelectBrackets = useSelectBrackets;
}
@Override
public String toString() {
StringBuilder sql = new StringBuilder();
sql.append("INSERT INTO ");
sql.append(table).append(" ");
if (columns != null) {
sql.append(PlainSelect.getStringList(columns, true, true)).append(" ");
}
if (useValues) {
sql.append("VALUES ");
}
if (itemsList != null) {
sql.append(itemsList);
}
if (useSelectBrackets) {
sql.append("(");
}
if (select != null) {
sql.append(select);
}
if (useSelectBrackets) {
sql.append(")");
}
if (isReturningAllColumns()) {
sql.append(" RETURNING *");
} else if (getReturningExpressionList() != null) {
sql.append(" RETURNING ").append(PlainSelect.getStringList(getReturningExpressionList(), true, false));
}
return sql.toString();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy