数据开发模块
parent
6db3ab26b2
commit
78153f8c69
|
@ -0,0 +1,24 @@
|
||||||
|
package net.srt.disposition.controller;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import net.srt.disposition.dto.DataCheckSqlDto;
|
||||||
|
import net.srt.disposition.entity.DataCheckSqlEntity;
|
||||||
|
import net.srt.disposition.service.DataCheckSqlService;
|
||||||
|
import net.srt.disposition.vo.DataCheckSqlVo;
|
||||||
|
import net.srt.framework.common.utils.Result;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@AllArgsConstructor
|
||||||
|
@RequestMapping("/task")
|
||||||
|
public class DataCheckSqlController {
|
||||||
|
|
||||||
|
private DataCheckSqlService dataCheckSqlService;
|
||||||
|
|
||||||
|
@PostMapping("/explain-sql")
|
||||||
|
public Result<DataCheckSqlVo> explainSql(DataCheckSqlDto dataCheckSqlDto) {
|
||||||
|
return Result.ok(dataCheckSqlService.explainSql(dataCheckSqlDto));
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
package net.srt.disposition.controller;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import net.srt.disposition.dto.DataSqlSaveDto;
|
||||||
|
import net.srt.disposition.service.DataSaveService;
|
||||||
|
import net.srt.framework.common.utils.Result;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@AllArgsConstructor
|
||||||
|
@RequestMapping("/task")
|
||||||
|
public class DataSaveController {
|
||||||
|
private DataSaveService dataSaveService;
|
||||||
|
@PostMapping
|
||||||
|
public Result addSave(@RequestBody DataSqlSaveDto dataSqlSaveDto){
|
||||||
|
dataSaveService.dataSaver(dataSqlSaveDto);
|
||||||
|
return Result.ok();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
package net.srt.disposition.convert;
|
||||||
|
|
||||||
|
import net.srt.disposition.dto.DataSqlSaveDto;
|
||||||
|
import net.srt.disposition.dto.DispositionDto;
|
||||||
|
import net.srt.disposition.entity.DataSqlSaveEntity;
|
||||||
|
import net.srt.disposition.entity.DispositionEntity;
|
||||||
|
import org.mapstruct.Mapper;
|
||||||
|
import org.mapstruct.factory.Mappers;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface DataSqlSaveConvert {
|
||||||
|
DataSqlSaveConvert INSTANCE = Mappers.getMapper(DataSqlSaveConvert.class);
|
||||||
|
DataSqlSaveEntity convert(DataSqlSaveDto vo);
|
||||||
|
}
|
|
@ -0,0 +1,56 @@
|
||||||
|
package net.srt.disposition.dto;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import lombok.Data;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class DataCheckSqlDto {
|
||||||
|
private Long alertGroupId;
|
||||||
|
private String alias;
|
||||||
|
private boolean batchModel;
|
||||||
|
private Long catalogueId;
|
||||||
|
private Integer checkPoint;
|
||||||
|
private String clusterConfigurationId;
|
||||||
|
private Long clusterId;
|
||||||
|
private String configJson;
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
|
private Date createTime;
|
||||||
|
private Integer databaseId;
|
||||||
|
private Integer deleted;
|
||||||
|
private Integer dialect;
|
||||||
|
private boolean enabled;
|
||||||
|
private Integer envId;
|
||||||
|
private boolean fragment;
|
||||||
|
private Integer id;
|
||||||
|
private Integer jarId;
|
||||||
|
private String jobName;
|
||||||
|
private Integer maxRowNum;
|
||||||
|
private String name;
|
||||||
|
private String note;
|
||||||
|
private Integer openTrans;
|
||||||
|
private Integer parallelism;
|
||||||
|
private boolean processEnd;
|
||||||
|
private Integer projectId;
|
||||||
|
private Integer pvdataNum;
|
||||||
|
private String savePointPath;
|
||||||
|
private String savePointStrategy;
|
||||||
|
private Integer sqlDbType;
|
||||||
|
private String statement;
|
||||||
|
private boolean statementSet;
|
||||||
|
private Integer step;
|
||||||
|
private String type;
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
|
private Date updateTime;
|
||||||
|
private Integer updater;
|
||||||
|
private boolean useAutoCancel;
|
||||||
|
private boolean useChangeLog;
|
||||||
|
private boolean usrResult;
|
||||||
|
private Integer version;
|
||||||
|
private Integer versionId;
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
package net.srt.disposition.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import net.srt.disposition.entity.DataDatabaseDevEntity;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class DataSqlSaveDto {
|
||||||
|
private String alias;
|
||||||
|
private Integer catalogueId;
|
||||||
|
private Integer databaseId;
|
||||||
|
private List<DataDatabaseDevEntity> databaseList;
|
||||||
|
private Integer dialect;
|
||||||
|
private Integer id;
|
||||||
|
private String name;
|
||||||
|
private Integer openTrans;
|
||||||
|
private boolean processEnd;
|
||||||
|
private Integer pvdataNum;
|
||||||
|
private Integer sqlDbType;
|
||||||
|
private String statement;
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
package net.srt.disposition.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import lombok.Data;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@TableName("data_check_sql")
|
||||||
|
public class DataCheckSqlEntity {
|
||||||
|
@TableId("id")
|
||||||
|
private Integer id;
|
||||||
|
private String type;
|
||||||
|
private String sql;
|
||||||
|
private String parse;
|
||||||
|
private String explain;
|
||||||
|
private String error;
|
||||||
|
private String parseTrue;
|
||||||
|
private String explainTrue;
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
|
private Date explainTime;
|
||||||
|
}
|
|
@ -0,0 +1,40 @@
|
||||||
|
package net.srt.disposition.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
import net.srt.framework.mybatis.entity.BaseEntity;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class DataDatabaseDevEntity {
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private Date createTime;
|
||||||
|
private String creator;
|
||||||
|
private String databaseDocument;
|
||||||
|
private String databaseIndex;
|
||||||
|
private String databaseIp;
|
||||||
|
private String databaseKafka;
|
||||||
|
private String databaseName;
|
||||||
|
private String databasePort;
|
||||||
|
private Integer databaseType;
|
||||||
|
private Integer deleted;
|
||||||
|
private Integer id;
|
||||||
|
private String isJdbc;
|
||||||
|
private String name;
|
||||||
|
private String noReReason;
|
||||||
|
private String password;
|
||||||
|
private Integer projectId;
|
||||||
|
private Integer status;
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
|
||||||
|
private Date updateTime;
|
||||||
|
private String updater;
|
||||||
|
private String userName;
|
||||||
|
private Integer version;
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,61 @@
|
||||||
|
package net.srt.disposition.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import lombok.Data;
|
||||||
|
import net.srt.framework.mybatis.entity.BaseEntity;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@TableName("data_sql_save")
|
||||||
|
public class DataSqlSaveEntity {
|
||||||
|
@TableId("id")
|
||||||
|
private Long id;
|
||||||
|
private Long catalogueId;
|
||||||
|
private String name;
|
||||||
|
private Long projectId;
|
||||||
|
private String alias;
|
||||||
|
private Integer dialect;
|
||||||
|
private Integer type;
|
||||||
|
private Integer checkPoint;
|
||||||
|
private Integer savePointStrategy;
|
||||||
|
private String savePointPath;
|
||||||
|
private Integer parallelism;
|
||||||
|
private boolean fragment;
|
||||||
|
private boolean statementSet;
|
||||||
|
private boolean batchModel;
|
||||||
|
private Long clusterId;
|
||||||
|
private Long clusterConfigurationId;
|
||||||
|
private Integer sqlDbType;
|
||||||
|
private Long databaseId;
|
||||||
|
private Integer openTrans;
|
||||||
|
private Long jarId;
|
||||||
|
private Long envId;
|
||||||
|
private Long alertGroupId;
|
||||||
|
private String configJson;
|
||||||
|
private String note;
|
||||||
|
private Integer step;
|
||||||
|
private Long jobInstanceId;
|
||||||
|
private boolean useAutoCancel;
|
||||||
|
private boolean useChangeLog;
|
||||||
|
private boolean useResult;
|
||||||
|
private Integer pvdataNum;
|
||||||
|
private boolean enabled;
|
||||||
|
private Long versionId;
|
||||||
|
private Integer version;
|
||||||
|
private Integer deleted;
|
||||||
|
private Long creator;
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
|
private Date createTime;
|
||||||
|
private Long updater;
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
|
private Date updateTime;
|
||||||
|
private String statement;
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
package net.srt.disposition.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import net.srt.disposition.entity.DataCheckSqlEntity;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface DataCheckSqlMapper extends BaseMapper<DataCheckSqlEntity> {
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
package net.srt.disposition.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import net.srt.disposition.entity.DataSqlSaveEntity;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface DataSaveServiceMapper extends BaseMapper<DataSqlSaveEntity> {
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
package net.srt.disposition.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import net.srt.disposition.dto.DataCheckSqlDto;
|
||||||
|
import net.srt.disposition.entity.DataCheckSqlEntity;
|
||||||
|
import net.srt.disposition.vo.DataCheckSqlVo;
|
||||||
|
|
||||||
|
public interface DataCheckSqlService extends IService<DataCheckSqlEntity> {
|
||||||
|
DataCheckSqlVo explainSql(DataCheckSqlDto dataCheckSqlDto);
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
package net.srt.disposition.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import net.srt.disposition.dto.DataSqlSaveDto;
|
||||||
|
import net.srt.disposition.entity.DataSqlSaveEntity;
|
||||||
|
|
||||||
|
public interface DataSaveService extends IService<DataSqlSaveEntity> {
|
||||||
|
void dataSaver(DataSqlSaveDto dataSqlSaveDto);
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,48 @@
|
||||||
|
package net.srt.disposition.service.impl;
|
||||||
|
|
||||||
|
import com.alibaba.druid.sql.ast.SQLStatement;
|
||||||
|
import com.alibaba.druid.sql.parser.SQLParserUtils;
|
||||||
|
import com.alibaba.druid.sql.parser.SQLStatementParser;
|
||||||
|
import jdk.nashorn.internal.runtime.ParserException;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import net.srt.disposition.dto.DataCheckSqlDto;
|
||||||
|
import net.srt.disposition.entity.DataCheckSqlEntity;
|
||||||
|
import net.srt.disposition.mapper.DataCheckSqlMapper;
|
||||||
|
import net.srt.disposition.service.DataCheckSqlService;
|
||||||
|
import net.srt.disposition.vo.DataCheckSqlVo;
|
||||||
|
import net.srt.framework.mybatis.service.impl.BaseServiceImpl;
|
||||||
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static com.alibaba.druid.sql.SQLUtils.toSQLString;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class DataCheckSqlServiceImpl extends BaseServiceImpl<DataCheckSqlMapper, DataCheckSqlEntity> implements DataCheckSqlService {
|
||||||
|
@Override
|
||||||
|
public DataCheckSqlVo explainSql(DataCheckSqlDto dataCheckSqlDto) {
|
||||||
|
DataCheckSqlVo dataCheckSqlVo = new DataCheckSqlVo();
|
||||||
|
try {
|
||||||
|
SQLStatementParser mysql = SQLParserUtils.createSQLStatementParser(dataCheckSqlDto.getStatement(), "mysql");
|
||||||
|
SQLStatement sqlStatement = mysql.parseStatement();
|
||||||
|
if (sqlStatement instanceof Select) {
|
||||||
|
dataCheckSqlVo.setType("SQLSelectStatement");
|
||||||
|
}
|
||||||
|
dataCheckSqlVo.setSql(dataCheckSqlDto.getStatement());
|
||||||
|
dataCheckSqlVo.setParseTrue(true);
|
||||||
|
dataCheckSqlVo.setExplainTrue(true);
|
||||||
|
dataCheckSqlVo.setExplainTime(new Date());
|
||||||
|
} catch (ParserException e) {
|
||||||
|
System.out.println("SQL转换中发生了错误:"+e.getMessage());
|
||||||
|
dataCheckSqlVo.setSql(dataCheckSqlDto.getStatement());
|
||||||
|
dataCheckSqlVo.setError(e.getMessage());
|
||||||
|
dataCheckSqlVo.setParseTrue(false);
|
||||||
|
dataCheckSqlVo.setExplainTrue(false);
|
||||||
|
dataCheckSqlVo.setExplainTime(new Date());
|
||||||
|
}
|
||||||
|
return dataCheckSqlVo;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
package net.srt.disposition.service.impl;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import net.srt.disposition.convert.DataSqlSaveConvert;
|
||||||
|
import net.srt.disposition.dto.DataSqlSaveDto;
|
||||||
|
import net.srt.disposition.entity.DataSqlSaveEntity;
|
||||||
|
import net.srt.disposition.mapper.DataSaveServiceMapper;
|
||||||
|
import net.srt.disposition.service.DataSaveService;
|
||||||
|
import net.srt.framework.mybatis.service.impl.BaseServiceImpl;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class DataSaveServiceImpl extends BaseServiceImpl<DataSaveServiceMapper,DataSqlSaveEntity> implements DataSaveService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void dataSaver(DataSqlSaveDto dataSqlSaveDto) {
|
||||||
|
DataSqlSaveEntity convert = DataSqlSaveConvert.INSTANCE.convert(dataSqlSaveDto);
|
||||||
|
convert.setCreateTime(new Date());
|
||||||
|
baseMapper.insert(convert);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
package net.srt.disposition.vo;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import lombok.Data;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class DataCheckSqlVo {
|
||||||
|
private Integer index;
|
||||||
|
private String type;
|
||||||
|
private String sql;
|
||||||
|
private String parse;
|
||||||
|
private String explain;
|
||||||
|
private String error;
|
||||||
|
private boolean parseTrue;
|
||||||
|
private boolean explainTrue;
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
|
private Date explainTime;
|
||||||
|
}
|
|
@ -2,11 +2,22 @@ server:
|
||||||
port: 8094
|
port: 8094
|
||||||
|
|
||||||
spring:
|
spring:
|
||||||
|
datasource:
|
||||||
|
druid:
|
||||||
|
stat-view-servlet:
|
||||||
|
enabled: true
|
||||||
|
loginUsername: bwie
|
||||||
|
loginPassword: 123456
|
||||||
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||||
|
url: jdbc:mysql://101.34.77.101:3306/12.5yk?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
|
||||||
|
username: root
|
||||||
|
password: cbx@123
|
||||||
|
type: com.alibaba.druid.pool.DruidDataSource
|
||||||
mvc:
|
mvc:
|
||||||
servlet:
|
servlet:
|
||||||
load-on-startup: 1
|
load-on-startup: 1
|
||||||
application:
|
application:
|
||||||
name: srt-data-development
|
name: srt-cloud-data-development
|
||||||
profiles:
|
profiles:
|
||||||
active: dev
|
active: dev
|
||||||
cloud:
|
cloud:
|
||||||
|
@ -14,9 +25,9 @@ spring:
|
||||||
discovery:
|
discovery:
|
||||||
server-addr: 101.34.77.101:8848
|
server-addr: 101.34.77.101:8848
|
||||||
# 命名空间,默认:public
|
# 命名空间,默认:public
|
||||||
namespace: c5d32e76-b83c-4254-8176-1c6a2cee8e3b
|
namespace: 9de208a6-cb30-41ae-a880-78196c99c050
|
||||||
service: ${spring.application.name}
|
service: ${spring.application.name}
|
||||||
group: srt2.1
|
group: srt2.0
|
||||||
config:
|
config:
|
||||||
server-addr: ${spring.cloud.nacos.discovery.server-addr}
|
server-addr: ${spring.cloud.nacos.discovery.server-addr}
|
||||||
namespace: ${spring.cloud.nacos.discovery.namespace}
|
namespace: ${spring.cloud.nacos.discovery.namespace}
|
||||||
|
@ -25,19 +36,4 @@ spring:
|
||||||
extension-configs:
|
extension-configs:
|
||||||
- data-id: datasource.yaml
|
- data-id: datasource.yaml
|
||||||
refresh: true
|
refresh: true
|
||||||
servlet:
|
|
||||||
multipart:
|
|
||||||
max-request-size: 100MB
|
|
||||||
max-file-size: 1024MB
|
|
||||||
storage:
|
|
||||||
enabled: true
|
|
||||||
config:
|
|
||||||
# 存储类型:local、aliyun
|
|
||||||
type: local
|
|
||||||
# 访问域名
|
|
||||||
domain: http://localhost:8082/sys
|
|
||||||
# 配置访问前缀
|
|
||||||
prefix:
|
|
||||||
local:
|
|
||||||
# 本地上传路径
|
|
||||||
path: D://upload
|
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
package com.text.dome;
|
||||||
|
|
||||||
|
|
||||||
|
import com.alibaba.druid.sql.ast.SQLObject;
|
||||||
|
import com.alibaba.druid.sql.ast.SQLStatement;
|
||||||
|
import com.alibaba.druid.sql.parser.SQLParserUtils;
|
||||||
|
import com.alibaba.druid.sql.parser.SQLStatementParser;
|
||||||
|
import jdk.nashorn.internal.runtime.ParserException;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static com.alibaba.druid.sql.SQLUtils.toSQLString;
|
||||||
|
|
||||||
|
public class a {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
String str = "create table `tb_user` (\n" +
|
||||||
|
" `id` varchar(22) not null COMMENT '主键id',\n" +
|
||||||
|
" `usercode` varchar(11) DEFAULT null COMMENT '手机号',\n" +
|
||||||
|
" `name` varchar(10) DEFAULT nu";
|
||||||
|
System.out.println("格式化之前:");
|
||||||
|
System.out.println(str);
|
||||||
|
System.out.println("格式化之后:");
|
||||||
|
try {
|
||||||
|
SQLStatementParser parser = SQLParserUtils.createSQLStatementParser(str, "mysql");
|
||||||
|
List<SQLStatement> statementList = parser.parseStatementList();
|
||||||
|
str = toSQLString((SQLObject) statementList, "mysql");
|
||||||
|
System.out.println(str);
|
||||||
|
} catch (ParserException e) {
|
||||||
|
System.out.println("SQL转换中发生了错误:"+e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue