improved sqlbuilder

This commit is contained in:
wenshao
2015-06-08 00:14:46 +08:00
parent aabce10550
commit 2c8863192d
2 changed files with 25 additions and 4 deletions
@@ -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) {