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());
}