MCPcopy Create free account
hub / github.com/Nemo1870/sql-parse / Insert

Class Insert

src/main/java/com/sql/parse/statement/impl/druid/Insert.java:26–221  ·  view source on GitHub ↗

@date 2019年4月30日上午09:58:02 @desc Insert语法操作类

Source from the content-addressed store, hash-verified

24 * @desc Insert语法操作类
25 */
26public class Insert extends com.sql.parse.statement.Insert {
27 private SQLInsertStatement insert;
28
29 public Insert(SQLInsertStatement insert) {
30 this.insert = insert;
31 }
32
33 public Insert(String tableName) {
34 SQLInsertStatement insert = new SQLInsertStatement();
35 SQLExprTableSource table = new SQLExprTableSource(tableName);
36 insert.setTableSource(table);
37 this.insert = insert;
38 }
39
40 @Override
41 public String getSql(boolean safe) {
42 if (this.insert.getQuery() == null && (this.insert.getValuesList() == null || this.insert.getValuesList().isEmpty())) {
43 throw BaseException.errorCode(SqlParseConstant.CODE_014);
44 } else {
45 return SQLUtils.toSQLString(this.insert);
46 }
47 }
48
49 public SQLInsertStatement getInsert() {
50 return this.insert;
51 }
52
53 /**
54 * @title: addColumn
55 * @desc 新增insert数据列
56 */
57 public Insert addColumn(String column) {
58 insert.addColumn(ExpressionBuilder.parse(column));
59 return this;
60 }
61
62 /**
63 * @title: addColumn
64 * @desc 新增insert数据列
65 */
66 public Insert addColumn(String column, String value) {
67 return addColumn(new InsertItem(column, value));
68 }
69
70 /**
71 * @title: addColumn
72 * @desc 新增insert数据列
73 */
74 public Insert addColumn(InsertItem insertItem) {
75 if (insert.getQuery() == null) {
76 insert.addColumn(ExpressionBuilder.parse(insertItem.getColumnName()));
77 List<SQLInsertStatement.ValuesClause> values = insert.getValuesList();
78 if (values.isEmpty()) {
79 SQLInsertStatement.ValuesClause valuesClause = new SQLInsertStatement.ValuesClause();
80 valuesClause.addValue(ExpressionBuilder.parse(insertItem.getExpression()));
81 values.add(valuesClause);
82 } else {
83 for (SQLInsertStatement.ValuesClause valuesClause : values) {

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected