From aabce10550149f0565f70206898292e25bec7872 Mon Sep 17 00:00:00 2001 From: wenshao Date: Mon, 8 Jun 2015 00:08:32 +0800 Subject: [PATCH] improved sqlbuilder --- .../sql/builder/impl/SQLBuilderImpl.java | 32 ++++++++++++++++++- .../mysql/ast/expr/MySqlBooleanExpr.java | 25 --------------- .../druid/sql/parser/SQLStatementParser.java | 7 ++-- 3 files changed, 34 insertions(+), 30 deletions(-) delete mode 100644 src/main/java/com/alibaba/druid/sql/dialect/mysql/ast/expr/MySqlBooleanExpr.java diff --git a/src/main/java/com/alibaba/druid/sql/builder/impl/SQLBuilderImpl.java b/src/main/java/com/alibaba/druid/sql/builder/impl/SQLBuilderImpl.java index 485629e99e..ffa69a272d 100644 --- a/src/main/java/com/alibaba/druid/sql/builder/impl/SQLBuilderImpl.java +++ b/src/main/java/com/alibaba/druid/sql/builder/impl/SQLBuilderImpl.java @@ -15,9 +15,39 @@ */ package com.alibaba.druid.sql.builder.impl; +import com.alibaba.druid.sql.ast.SQLExpr; +import com.alibaba.druid.sql.ast.expr.SQLBooleanExpr; +import com.alibaba.druid.sql.ast.expr.SQLCharExpr; +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) { + if (obj == null) { + return new SQLNullExpr(); + } + + if (obj instanceof Integer) { + return new SQLIntegerExpr((Integer) obj); + } + + if (obj instanceof Number) { + return new SQLNumberExpr((Number) obj); + } + + if (obj instanceof String) { + return new SQLCharExpr((String) obj); + } + + if (obj instanceof Boolean) { + return new SQLBooleanExpr((Boolean) obj); + } + + throw new IllegalArgumentException("not support : " + obj.getClass().getName()); + } } diff --git a/src/main/java/com/alibaba/druid/sql/dialect/mysql/ast/expr/MySqlBooleanExpr.java b/src/main/java/com/alibaba/druid/sql/dialect/mysql/ast/expr/MySqlBooleanExpr.java deleted file mode 100644 index af19c47b03..0000000000 --- a/src/main/java/com/alibaba/druid/sql/dialect/mysql/ast/expr/MySqlBooleanExpr.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright 1999-2011 Alibaba Group Holding Ltd. - * - * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0 - * - * 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 com.alibaba.druid.sql.dialect.mysql.ast.expr; - -import com.alibaba.druid.sql.ast.expr.SQLBooleanExpr; -import com.alibaba.druid.sql.ast.expr.SQLLiteralExpr; - -public class MySqlBooleanExpr extends SQLBooleanExpr implements MySqlExpr, SQLLiteralExpr { - - - -} diff --git a/src/main/java/com/alibaba/druid/sql/parser/SQLStatementParser.java b/src/main/java/com/alibaba/druid/sql/parser/SQLStatementParser.java index 6035f8eb33..fdd2a3df6b 100644 --- a/src/main/java/com/alibaba/druid/sql/parser/SQLStatementParser.java +++ b/src/main/java/com/alibaba/druid/sql/parser/SQLStatementParser.java @@ -23,7 +23,6 @@ import com.alibaba.druid.sql.ast.SQLName; import com.alibaba.druid.sql.ast.SQLObject; import com.alibaba.druid.sql.ast.SQLStatement; import com.alibaba.druid.sql.ast.expr.SQLIdentifierExpr; -import com.alibaba.druid.sql.ast.expr.SQLListExpr; import com.alibaba.druid.sql.ast.expr.SQLQueryExpr; import com.alibaba.druid.sql.ast.expr.SQLVariantRefExpr; import com.alibaba.druid.sql.ast.statement.SQLAlterTableAddColumn; @@ -36,6 +35,9 @@ import com.alibaba.druid.sql.ast.statement.SQLAlterTableDropColumnItem; import com.alibaba.druid.sql.ast.statement.SQLAlterTableDropConstraint; import com.alibaba.druid.sql.ast.statement.SQLAlterTableEnableConstraint; import com.alibaba.druid.sql.ast.statement.SQLAlterTableEnableKeys; +import com.alibaba.druid.sql.ast.statement.SQLAlterTableItem; +import com.alibaba.druid.sql.ast.statement.SQLAlterTableRename; +import com.alibaba.druid.sql.ast.statement.SQLAlterTableRenameColumn; import com.alibaba.druid.sql.ast.statement.SQLAlterTableStatement; import com.alibaba.druid.sql.ast.statement.SQLAssignItem; import com.alibaba.druid.sql.ast.statement.SQLCallStatement; @@ -49,9 +51,6 @@ import com.alibaba.druid.sql.ast.statement.SQLCreateTableStatement; import com.alibaba.druid.sql.ast.statement.SQLCreateTriggerStatement; import com.alibaba.druid.sql.ast.statement.SQLCreateTriggerStatement.TriggerEvent; import com.alibaba.druid.sql.ast.statement.SQLCreateTriggerStatement.TriggerType; -import com.alibaba.druid.sql.ast.statement.SQLAlterTableItem; -import com.alibaba.druid.sql.ast.statement.SQLAlterTableRename; -import com.alibaba.druid.sql.ast.statement.SQLAlterTableRenameColumn; import com.alibaba.druid.sql.ast.statement.SQLCreateViewStatement; import com.alibaba.druid.sql.ast.statement.SQLDeleteStatement; import com.alibaba.druid.sql.ast.statement.SQLDropDatabaseStatement;