• 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
  • 相关阅读:
    谷歌真的不喜欢 Node.js ?
    C语言实例练习
    有哪些常用的压力测试工具?软件压力测试流程
    【PyTorch】深度学习实践之 梯度下降Gradient Descent
    综述--知识蒸馏
    大数据数据采集工具简介
    pthread_mutex_lock
    《C++避坑神器·十六》函数默认参数和占位参数
    计算机网络课程设计——中小型网络工程设计
    NFS服务详解
  • 原文地址:https://blog.csdn.net/q4444tita/article/details/133915394