mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
improved sqlbuilder
This commit is contained in:
@@ -22,12 +22,10 @@ import com.alibaba.druid.sql.ast.expr.SQLIntegerExpr;
|
||||
import com.alibaba.druid.sql.ast.expr.SQLNullExpr;
|
||||
import com.alibaba.druid.sql.ast.expr.SQLNumberExpr;
|
||||
import com.alibaba.druid.sql.builder.SQLBuilder;
|
||||
import com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlBooleanExpr;
|
||||
import com.alibaba.druid.util.JdbcConstants;
|
||||
|
||||
|
||||
public class SQLBuilderImpl implements SQLBuilder {
|
||||
protected SQLExpr toSQLExpr(Object obj, String dbType) {
|
||||
public static SQLExpr toSQLExpr(Object obj, String dbType) {
|
||||
if (obj == null) {
|
||||
return new SQLNullExpr();
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
package com.alibaba.druid.sql.builder.impl;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.alibaba.druid.sql.SQLUtils;
|
||||
import com.alibaba.druid.sql.ast.SQLExpr;
|
||||
@@ -32,7 +33,7 @@ import com.alibaba.druid.sql.dialect.postgresql.ast.stmt.PGUpdateStatement;
|
||||
import com.alibaba.druid.sql.dialect.sqlserver.ast.stmt.SQLServerUpdateStatement;
|
||||
import com.alibaba.druid.util.JdbcConstants;
|
||||
|
||||
public class SQLUpdateBuilderImpl implements SQLUpdateBuilder {
|
||||
public class SQLUpdateBuilderImpl extends SQLBuilderImpl implements SQLUpdateBuilder {
|
||||
|
||||
private SQLUpdateStatement stmt;
|
||||
private String dbType;
|
||||
@@ -126,6 +127,28 @@ public class SQLUpdateBuilderImpl implements SQLUpdateBuilder {
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public SQLUpdateBuilderImpl setValue(Map<String, Object> values) {
|
||||
for (Map.Entry<String, Object> entry : values.entrySet()) {
|
||||
setValue(entry.getKey(), entry.getValue());
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public SQLUpdateBuilderImpl setValue(String column, Object value) {
|
||||
SQLUpdateStatement update = getSQLUpdateStatement();
|
||||
|
||||
SQLExpr columnExpr = SQLUtils.toSQLExpr(column, dbType);
|
||||
SQLExpr valueExpr = toSQLExpr(value, dbType);
|
||||
|
||||
SQLUpdateSetItem item = new SQLUpdateSetItem();
|
||||
item.setColumn(columnExpr);
|
||||
item.setValue(valueExpr);
|
||||
update.addItem(item);
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
public SQLUpdateStatement getSQLUpdateStatement() {
|
||||
if (stmt == null) {
|
||||
|
||||
Reference in New Issue
Block a user