• JSqlParser生成修改表定义SQL语句


    依赖

            <dependency>
                <groupId>com.github.jsqlparsergroupId>
                <artifactId>jsqlparserartifactId>
                <version>4.3version>
            dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    删除表

    import net.sf.jsqlparser.schema.Table;
    import net.sf.jsqlparser.statement.drop.Drop;
    
    public class DropTableDemo {
        public static void main(String[] args) {
            Drop drop = new Drop();
            drop.setIfExists(true);
            drop.setType("TABLE");
            Table table = new Table("t_one");
            drop.setName(table);
            System.out.println(drop);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    语句:

    DROP TABLE IF EXISTS t_one
    
    • 1

    修改字段定义

    import net.sf.jsqlparser.schema.Table;
    import net.sf.jsqlparser.statement.alter.Alter;
    import net.sf.jsqlparser.statement.alter.AlterExpression;
    import net.sf.jsqlparser.statement.alter.AlterOperation;
    import net.sf.jsqlparser.statement.create.table.ColDataType;
    
    import java.util.Collections;
    
    public class AlterTableDemo {
        public static void main(String[] args)throws Exception {
            Alter alter = new Alter();
            alter.setTable(new Table("t_one"));
            // 修改姓名
            ColDataType varchar = new ColDataType("VARCHAR");
            varchar.setArgumentsStringList(Collections.singletonList("128"));
            AlterExpression.ColumnDataType name = new AlterExpression.ColumnDataType("name", false, varchar, Collections.singletonList("COMMENT '道号'"));
            AlterExpression alterExpression = new AlterExpression();
            alterExpression.setOperation(AlterOperation.MODIFY);
            alterExpression.addColDataType(name);
            alter.addAlterExpression(alterExpression);
            // 修改仙龄
            ColDataType anInt = new ColDataType("INT");
            anInt.setArgumentsStringList(Collections.singletonList("10"));
            AlterExpression.ColumnDataType age = new AlterExpression.ColumnDataType("age", false, anInt, Collections.singletonList("COMMENT '仙龄'"));
            AlterExpression ageAlterexpression = new AlterExpression();
            ageAlterexpression.setOperation(AlterOperation.MODIFY);
            ageAlterexpression.addColDataType(age);
            alter.addAlterExpression(ageAlterexpression);
            System.out.println(alter);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    语句:

    ALTER TABLE t_one MODIFY name VARCHAR (128) COMMENT '道号', MODIFY age INT (10) COMMENT '仙龄'
    
    • 1

    新增字段

    import net.sf.jsqlparser.schema.Table;
    import net.sf.jsqlparser.statement.alter.Alter;
    import net.sf.jsqlparser.statement.alter.AlterExpression;
    import net.sf.jsqlparser.statement.alter.AlterOperation;
    import net.sf.jsqlparser.statement.create.table.ColDataType;
    
    import java.util.Collections;
    
    public class AddColumnDemo {
        public static void main(String[] args) {
            Alter alter = new Alter();
            alter.setTable(new Table("t_one"));
            AlterExpression alterExpression = new AlterExpression();
            alterExpression.setOperation(AlterOperation.ADD);
            ColDataType bigint = new ColDataType("BIGINT");
            bigint.setArgumentsStringList(Collections.singletonList("20"));
            AlterExpression.ColumnDataType fightingCapacity = new AlterExpression.ColumnDataType("fighting_capacity", false, bigint, Collections.singletonList("COMMENT '战力'"));
            alterExpression.addColDataType(fightingCapacity);
            alter.addAlterExpression(alterExpression);
            System.out.println(alter);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    语句:

    ALTER TABLE t_one ADD fighting_capacity BIGINT (20) COMMENT '战力'
    
    • 1

    删除字段

    import net.sf.jsqlparser.schema.Table;
    import net.sf.jsqlparser.statement.alter.Alter;
    import net.sf.jsqlparser.statement.alter.AlterExpression;
    import net.sf.jsqlparser.statement.alter.AlterOperation;
    
    
    public class DropColumnDemo {
        public static void main(String[] args)throws Exception {
            Alter alter = new Alter();
            alter.setTable(new Table("t_one"));
            AlterExpression alterExpression = new AlterExpression();
            alterExpression.setOperation(AlterOperation.DROP);
            alterExpression.setColumnName("fighting_capacity");
            alter.addAlterExpression(alterExpression);
            System.out.println(alter);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    语句:

    ALTER TABLE t_one DROP fighting_capacity
    
    • 1
  • 相关阅读:
    【正点原子】I.MX6U 修改开机进度条及内核LOGO
    runc和docker
    人工蜂群(ABC)算法附matlab代码
    【Java UI】HarmonyOs如何集成Hawk
    使用EasyPlayer播放H.265视频流
    C++ final和override的作用,以及使用场合
    基于变色龙算法的无人机航迹规划-附代码
    C语言 位操作符 >> << & | ^
    linux高级篇基础理论一(详细文档、Apache,网站,MySQL、MySQL备份工具)
    MacBook Pro 入门技巧:从 Windows 转到 macOS 的操作对比
  • 原文地址:https://blog.csdn.net/q4444tita/article/details/133915394