Package co.mewf.sqlwriter.builders

Source Code of co.mewf.sqlwriter.builders.InsertBuilder

package co.mewf.sqlwriter.builders;

import co.mewf.sqlwriter.mapping.ColumnInfo;
import co.mewf.sqlwriter.mapping.TableInfo;

import java.util.ArrayList;
import java.util.List;

public class InsertBuilder {

  private final TableInfo table;
  private final List<ColumnInfo> columns = new ArrayList<ColumnInfo>();

  public InsertBuilder(Class<?> entityClass) {
    this.table = new TableInfo(entityClass);
  }

  public InsertBuilder columns(String... columns) {
    for (String column : columns) {
      this.columns .add(table.column(column));
    }
    return this;
  }

  public String sql() {
    return toString();
  }

  @Override
  public String toString() {
    StringBuilder builder = new StringBuilder("INSERT INTO ").append(table.name).append('(');

    if (columns.isEmpty()) {
      columns.addAll(table.getInsertableColumns());
    }

    for (ColumnInfo column : columns) {
      builder.append(column.name).append(", ");
    }
    builder.delete(builder.length() - 2, builder.length());
    builder.append(") VALUES(");
    for (ColumnInfo column : columns) {
      builder.append("?, ");
    }
    builder.delete(builder.length() - 2, builder.length());
    builder.append(')');

    return builder.toString();
  }
}
TOP

Related Classes of co.mewf.sqlwriter.builders.InsertBuilder

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.