druid sql 示例

1.生成mysql 建表语句

import com.alibaba.druid.sql.ast.SQLDataTypeImpl;
import com.alibaba.druid.sql.ast.SQLIndexDefinition;
import com.alibaba.druid.sql.ast.expr.SQLIdentifierExpr;
import com.alibaba.druid.sql.ast.statement.SQLAssignItem;
import com.alibaba.druid.sql.ast.statement.SQLColumnDefinition;
import com.alibaba.druid.sql.ast.statement.SQLNotNullConstraint;
import com.alibaba.druid.sql.ast.statement.SQLSelectOrderByItem;
import com.alibaba.druid.sql.dialect.mysql.ast.MySqlPrimaryKey;
import com.alibaba.druid.sql.dialect.mysql.ast.expr.MySqlCharExpr;
import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlCreateTableStatement;


public static void main(String[] args) {
    
    
        MySqlCreateTableStatement stmt = new MySqlCreateTableStatement();
        stmt.setTableName("T_API_INFO");
        stmt.setIfNotExiists(true);
        stmt.setComment(new MySqlCharExpr("API信息表"));
        //定义字段
        SQLColumnDefinition sqlColumnDefinition = new SQLColumnDefinition();
        sqlColumnDefinition.setName("ID");
        sqlColumnDefinition.setDataType(new SQLDataTypeImpl("bigint", 20));
        sqlColumnDefinition.setComment("主键ID");
        sqlColumnDefinition.addConstraint(new SQLNotNullConstraint());
        sqlColumnDefinition.setAutoIncrement(true);
        stmt.addColumn(sqlColumnDefinition);
        //主键
        MySqlPrimaryKey mySqlPrimaryKey = new MySqlPrimaryKey();
        SQLIndexDefinition indexDefinition = mySqlPrimaryKey.getIndexDefinition();
        indexDefinition.setType("PRIMARY");
        indexDefinition.setKey(true);
        indexDefinition.getColumns().add(new SQLSelectOrderByItem(new SQLIdentifierExpr("ID")));
        stmt.getTableElementList().add(mySqlPrimaryKey);
        // 配置  指定引擎 字符等
        List<SQLAssignItem> tableOptions = stmt.getTableOptions();
        tableOptions.add(new SQLAssignItem(new SQLIdentifierExpr("ENGINE"), new SQLIdentifierExpr("InnoDB")));
        tableOptions.add(new SQLAssignItem(new SQLIdentifierExpr("CHARSET"), new SQLIdentifierExpr("utf8mb4")));

        System.out.println(stmt.toString());
        /**
         CREATE TABLE IF NOT EXISTS T_API_INFO (
             ID bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
             PRIMARY KEY (ID)
         ) ENGINE = InnoDB CHARSET = utf8mb4 COMMENT 'API信息表'
         */
    }



猜你喜欢

转载自blog.csdn.net/m0_37859032/article/details/114088838