Search in sources :

Example 1 with DBType

use of com.varsql.core.db.DBType in project varsql by varsqlinfo.

the class SQLServiceImpl method sqlFormat.

/**
 * @Method Name  : sqlFormat
 * @Method 설명 : sql 포멧 맞추기
 * @작성자   : ytkim
 * @작성일   : 2015. 4. 6.
 * @변경이력  :
 * @param sqlExecuteInfo
 * @return
 * @throws Exception
 */
public ResponseResult sqlFormat(SqlExecuteDTO sqlExecuteInfo) throws Exception {
    ResponseResult result = new ResponseResult();
    DBType dbType = DBType.getDBType(sqlExecuteInfo.getDbType());
    if ("varsql".equals(sqlExecuteInfo.getCustom().get("formatType"))) {
        result.setItemOne(VarsqlFormatterUtil.format(sqlExecuteInfo.getSql(), dbType, VarsqlFormatterUtil.FORMAT_TYPE.VARSQL));
    } else {
        result.setItemOne(VarsqlFormatterUtil.format(sqlExecuteInfo.getSql(), dbType));
    }
    return result;
}
Also used : ResponseResult(com.vartech.common.app.beans.ResponseResult) DBType(com.varsql.core.db.DBType)

Example 2 with DBType

use of com.varsql.core.db.DBType in project varsql by varsqlinfo.

the class SqlSourceBuilderTest method testDruid.

@Test
void testDruid() {
    String sql;
    DBType dbType = DBType.ORACLE;
    ;
    try {
        sql = getResourceContent("/query/query.txt");
        HashMap param = new HashMap();
        List<SQLStatement> statements = SQLUtils.toStatementList(sql, SQLParserUtils.getDbParser(dbType));
        for (SQLStatement statement : statements) {
            System.out.println("main sysout " + SQLUtils.toSQLString(statement, SQLParserUtils.getDbParser(dbType), null));
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}
Also used : HashMap(java.util.HashMap) DBType(com.varsql.core.db.DBType) SQLStatement(com.alibaba.druid.sql.ast.SQLStatement) Test(org.junit.jupiter.api.Test) BaseTest(com.varsql.core.test.BaseTest)

Example 3 with DBType

use of com.varsql.core.db.DBType in project varsql by varsqlinfo.

the class JPAConfigurer method querydslConfiguration.

@Bean
public com.querydsl.sql.Configuration querydslConfiguration() {
    SQLTemplates templates = H2Templates.builder().build();
    DBType dbType = DBType.getDBType(Configuration.getInstance().getDbType());
    if (DBType.MYSQL.equals(dbType)) {
        templates = MySQLTemplates.builder().build();
    } else if (DBType.MSSQL.equals(dbType)) {
        templates = SQLServerTemplates.builder().build();
    } else if (DBType.ORACLE.equals(dbType)) {
        templates = OracleTemplates.builder().build();
    } else if (DBType.POSTGRESQL.equals(dbType)) {
        templates = com.querydsl.sql.PostgreSQLTemplates.builder().build();
    } else if (DBType.CUBRID.equals(dbType)) {
        templates = com.querydsl.sql.CUBRIDTemplates.builder().build();
    } else if (DBType.DB2.equals(dbType)) {
        templates = com.querydsl.sql.DB2Templates.builder().build();
    } else if (DBType.MARIADB.equals(dbType)) {
        templates = com.querydsl.sql.MySQLTemplates.builder().build();
    } else if (DBType.TIBERO.equals(dbType)) {
        templates = com.querydsl.sql.OracleTemplates.builder().build();
    } else if (DBType.H2.equals(dbType)) {
        templates = com.querydsl.sql.H2Templates.builder().build();
    } else {
        templates = com.querydsl.sql.H2Templates.builder().build();
    }
    com.querydsl.sql.Configuration configuration = new com.querydsl.sql.Configuration(templates);
    configuration.setExceptionTranslator(new SpringExceptionTranslator());
    configuration.register(new DateTimeType());
    configuration.register(new LocalDateType());
    return configuration;
}
Also used : DateTimeType(com.querydsl.sql.types.DateTimeType) SpringExceptionTranslator(com.querydsl.sql.spring.SpringExceptionTranslator) Configuration(com.varsql.core.configuration.Configuration) LocalDateType(com.querydsl.sql.types.LocalDateType) MySQLTemplates(com.querydsl.sql.MySQLTemplates) SQLTemplates(com.querydsl.sql.SQLTemplates) DBType(com.varsql.core.db.DBType) Bean(org.springframework.context.annotation.Bean) LocalContainerEntityManagerFactoryBean(org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean)

Example 4 with DBType

use of com.varsql.core.db.DBType in project varsql by varsqlinfo.

the class ExportServiceImpl method downloadTableData2.

public ResponseResult downloadTableData2(PreferencesRequestDTO preferencesInfo, HttpServletRequest req, HttpServletResponse res) throws Exception {
    DataDownloadInfo ddi = VartechUtils.jsonStringToObject(preferencesInfo.getPrefVal(), DataDownloadInfo.class, true);
    DatabaseInfo databaseInfo = SecurityUtil.loginInfo().getDatabaseInfo().get(ddi.getConuid());
    logger.debug("downloadTableData : {}", preferencesInfo.getPrefVal());
    String prefixSchema = StringUtils.isBlank(ddi.getSchema()) ? "" : ddi.getSchema() + ".";
    String charset = StringUtils.isBlank(ddi.getCharset()) ? VarsqlConstants.CHAR_SET : ddi.getCharset();
    String exportFileName = ValidateUtils.getValidFileName(ddi.getFileName());
    String fileId = VartechUtils.generateUUID();
    Path fileExportPath = FileServiceUtils.getSavePath(UploadFileType.EXPORT);
    File zipFile = new File(FileUtils.pathConcat(fileExportPath.toAbsolutePath().toString(), VarsqlFileType.ZIP.concatExtension(fileId)));
    int bufferSize = 2048;
    final VarsqlFileType exportType = ddi.getExportType();
    DBType dbType = DBType.getDBType(databaseInfo.getType());
    String requid = ddi.getRequid();
    ProgressInfo progressInfo = new ProgressInfo();
    progressInfo.setTotalItemSize(ddi.getItems().size());
    String sessAttrKey = HttpSessionConstants.progressKey(requid);
    System.out.println("downloadTableData2 sessAttrKey : " + sessAttrKey);
    HttpSession session = req.getSession();
    session.setAttribute(sessAttrKey, progressInfo);
    try (ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipFile), Charset.forName(charset))) {
        int idx = 0;
        for (DownloadItemInfo item : ddi.getItems()) {
            ++idx;
            SqlExecuteDTO seDto = new SqlExecuteDTO();
            seDto.setLimit(ddi.getLimit());
            seDto.setConuid(ddi.getConuid(), exportFileName, databaseInfo);
            String objectName = prefixSchema + item.getName();
            seDto.setSqlParam("{}");
            seDto.setSql(SQLUtils.generateSelectQuery(objectName, item.getCondition(), dbType));
            String downloadFilePath = FileUtils.pathConcat(fileExportPath.toAbsolutePath().toString(), exportType.concatExtension(VartechUtils.generateUUID()));
            progressInfo.setName(item.getName());
            progressInfo.setItemIdx(idx);
            AbstractWriter writer = null;
            try (OutputStream outstream = new FileOutputStream(downloadFilePath)) {
                if (VarsqlFileType.CSV.equals(exportType)) {
                    writer = new CSVWriter(outstream, ',', charset);
                } else if (VarsqlFileType.JSON.equals(exportType)) {
                    writer = new JSONWriter(outstream, "row", charset);
                } else if (VarsqlFileType.XML.equals(exportType)) {
                    writer = new XMLWriter(outstream, "row", charset);
                } else if (VarsqlFileType.EXCEL.equals(exportType)) {
                    writer = new ExcelWriter(outstream);
                } else {
                    writer = new SQLWriter(outstream, dbType, objectName, charset);
                }
                logger.debug("data export downloadFilePath :{} , query : {}", downloadFilePath, seDto.getSql());
                final String tableName = item.getName();
                SQLExecuteResult ser = (new SelectExecutor()).execute(seDto, new AbstractSQLExecutorHandler(writer) {

                    private boolean firstFlag = true;

                    private int rowIdx = 0;

                    public boolean handle(SQLHandlerParameter handleParam) {
                        if (this.firstFlag) {
                            WriteMetadataInfo whi = new WriteMetadataInfo("exportInfo");
                            List<ExportColumnInfo> columns = new LinkedList<>();
                            handleParam.getColumnInfoList().forEach(item -> {
                                ExportColumnInfo gci = new ExportColumnInfo();
                                gci.setName(item.getLabel());
                                // 추가 할것.
                                gci.setAlias(item.getKey());
                                gci.setType(item.getDbType());
                                gci.setNumber(item.isNumber());
                                gci.setLob(item.isLob());
                                columns.add(gci);
                            });
                            whi.addMetedata("tableName", tableName);
                            whi.addMetedata("columns", columns);
                            getWriter().setMetadata(new WriteMetadataInfo[] { whi });
                            if (VarsqlFileType.SQL.equals(exportType)) {
                                ((SQLWriter) getWriter()).setColumnInfos(handleParam.getColumnInfoList());
                            }
                            this.firstFlag = false;
                        }
                        progressInfo.setProgressContentLength(++rowIdx);
                        try {
                            getWriter().addRow(handleParam.getRowObject());
                        } catch (IOException e) {
                            logger.error(e.getMessage(), e);
                            return false;
                        }
                        return true;
                    }
                });
                writer.writeAndClose();
                String zipFileName = exportType.concatExtension(item.getName());
                if (ser.getResultCode() != null) {
                    VarsqlUtils.textDownload(new FileOutputStream(downloadFilePath), ser.getMessage());
                    zipFileName = item.getName() + "-export-error.txt";
                }
                try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(downloadFilePath))) {
                    ZipEntry zentry = new ZipEntry(zipFileName);
                    zentry.setSize(new File(downloadFilePath).length());
                    zos.putNextEntry(zentry);
                    byte[] buffer = new byte[bufferSize];
                    int cnt = 0;
                    while ((cnt = bis.read(buffer, 0, bufferSize)) != -1) {
                        zos.write(buffer, 0, cnt);
                    }
                    zos.closeEntry();
                }
                new File(downloadFilePath).delete();
            } catch (Exception e) {
                throw e;
            } finally {
                IOUtils.close(writer);
            }
        }
        IOUtils.close(zos);
    }
    FileInfoEntity fie = FileInfoEntity.builder().fileId(fileId).fileContId(fileId).contGroupId(databaseInfo.getVconnid()).fileDiv(UploadFileType.EXPORT.getDiv()).fileFieldName("downloadZipFile").fileName(VarsqlFileType.ZIP.concatExtension(exportFileName)).fileSize(zipFile.length()).fileExt(VarsqlFileType.ZIP.getExtension()).filePath(FileUtils.pathConcat(FileServiceUtils.getSaveRelativePath(UploadFileType.EXPORT), zipFile.getName())).build();
    fileInfoEntityRepository.save(fie);
    session.setAttribute(sessAttrKey, "complete");
    return VarsqlUtils.getResponseResultItemOne(fie);
}
Also used : JSONWriter(com.vartech.common.io.writer.JSONWriter) SelectExecutor(com.varsql.core.sql.executor.SelectExecutor) ExportColumnInfo(com.varsql.core.sql.beans.ExportColumnInfo) Arrays(java.util.Arrays) MetaControlBean(com.varsql.core.db.MetaControlBean) DatabaseParamInfo(com.varsql.core.db.valueobject.DatabaseParamInfo) BufferedInputStream(java.io.BufferedInputStream) WriteMetadataInfo(com.vartech.common.io.writer.WriteMetadataInfo) LoggerFactory(org.slf4j.LoggerFactory) Autowired(org.springframework.beans.factory.annotation.Autowired) VarsqlUtils(com.varsql.web.util.VarsqlUtils) ModelMap(org.springframework.ui.ModelMap) DatabaseInfo(com.varsql.core.db.valueobject.DatabaseInfo) ObjectType(com.varsql.core.db.servicemenu.ObjectType) DataCommonVO(com.varsql.web.common.beans.DataCommonVO) DownloadItemInfo(com.varsql.web.dto.DownloadItemInfo) Map(java.util.Map) SQLUtils(com.varsql.core.sql.util.SQLUtils) VarsqlReportConfig(com.varsql.core.db.report.VarsqlReportConfig) JSONWriter(com.vartech.common.io.writer.JSONWriter) XMLWriter(com.vartech.common.io.writer.XMLWriter) Path(java.nio.file.Path) ZipEntry(java.util.zip.ZipEntry) HttpSession(javax.servlet.http.HttpSession) DataDownloadInfo(com.varsql.web.dto.DataDownloadInfo) PreferencesConstants(com.varsql.web.constants.PreferencesConstants) ProgressInfo(com.varsql.core.common.beans.ProgressInfo) VarsqlFileType(com.varsql.core.common.code.VarsqlFileType) Collectors(java.util.stream.Collectors) CSVWriter(com.vartech.common.io.writer.CSVWriter) DDLCreateOption(com.varsql.core.db.valueobject.ddl.DDLCreateOption) List(java.util.List) ZipOutputStream(java.util.zip.ZipOutputStream) DDLInfo(com.varsql.core.db.valueobject.ddl.DDLInfo) FileInfoEntity(com.varsql.web.model.entity.app.FileInfoEntity) ExcelWriter(com.vartech.common.io.writer.ExcelWriter) IOUtils(com.vartech.common.utils.IOUtils) SQLWriter(com.varsql.core.data.writer.SQLWriter) ValidateUtils(com.varsql.web.util.ValidateUtils) HashMap(java.util.HashMap) ResponseResult(com.vartech.common.app.beans.ResponseResult) SQLExecuteResult(com.varsql.core.sql.executor.SQLExecuteResult) FileUtils(com.vartech.common.utils.FileUtils) BufferedOutputStream(java.io.BufferedOutputStream) SecurityUtil(com.varsql.core.common.util.SecurityUtil) VartechUtils(com.vartech.common.utils.VartechUtils) HttpServletRequest(javax.servlet.http.HttpServletRequest) UploadFileType(com.varsql.web.constants.UploadFileType) Charset(java.nio.charset.Charset) BlankConstants(com.varsql.core.common.constants.BlankConstants) AbstractWriter(com.vartech.common.io.writer.AbstractWriter) Service(org.springframework.stereotype.Service) LinkedList(java.util.LinkedList) HttpSessionConstants(com.varsql.web.constants.HttpSessionConstants) EnumMapperValue(com.vartech.common.app.beans.EnumMapperValue) OutputStream(java.io.OutputStream) Logger(org.slf4j.Logger) Iterator(java.util.Iterator) FileServiceUtils(com.varsql.web.util.FileServiceUtils) StringUtils(com.vartech.common.utils.StringUtils) HttpServletResponse(javax.servlet.http.HttpServletResponse) VarsqlConstants(com.varsql.core.common.constants.VarsqlConstants) FileOutputStream(java.io.FileOutputStream) IOException(java.io.IOException) FileInputStream(java.io.FileInputStream) File(java.io.File) PreferencesRequestDTO(com.varsql.web.dto.user.PreferencesRequestDTO) SQLHandlerParameter(com.varsql.core.sql.executor.handler.SQLHandlerParameter) DBType(com.varsql.core.db.DBType) MetaControlFactory(com.varsql.core.db.MetaControlFactory) FileInfoEntityRepository(com.varsql.web.repository.user.FileInfoEntityRepository) SqlExecuteDTO(com.varsql.web.dto.sql.SqlExecuteDTO) SelectExecutor(com.varsql.core.sql.executor.SelectExecutor) AbstractSQLExecutorHandler(com.varsql.core.sql.executor.handler.AbstractSQLExecutorHandler) ExcelReport(com.vartech.common.excel.ExcelReport) DatabaseInfo(com.varsql.core.db.valueobject.DatabaseInfo) ZipOutputStream(java.util.zip.ZipOutputStream) BufferedOutputStream(java.io.BufferedOutputStream) OutputStream(java.io.OutputStream) FileOutputStream(java.io.FileOutputStream) ExcelWriter(com.vartech.common.io.writer.ExcelWriter) SQLHandlerParameter(com.varsql.core.sql.executor.handler.SQLHandlerParameter) WriteMetadataInfo(com.vartech.common.io.writer.WriteMetadataInfo) ZipEntry(java.util.zip.ZipEntry) CSVWriter(com.vartech.common.io.writer.CSVWriter) DBType(com.varsql.core.db.DBType) AbstractWriter(com.vartech.common.io.writer.AbstractWriter) XMLWriter(com.vartech.common.io.writer.XMLWriter) VarsqlFileType(com.varsql.core.common.code.VarsqlFileType) AbstractSQLExecutorHandler(com.varsql.core.sql.executor.handler.AbstractSQLExecutorHandler) ExportColumnInfo(com.varsql.core.sql.beans.ExportColumnInfo) BufferedInputStream(java.io.BufferedInputStream) ProgressInfo(com.varsql.core.common.beans.ProgressInfo) List(java.util.List) LinkedList(java.util.LinkedList) FileInfoEntity(com.varsql.web.model.entity.app.FileInfoEntity) DownloadItemInfo(com.varsql.web.dto.DownloadItemInfo) Path(java.nio.file.Path) SqlExecuteDTO(com.varsql.web.dto.sql.SqlExecuteDTO) HttpSession(javax.servlet.http.HttpSession) DataDownloadInfo(com.varsql.web.dto.DataDownloadInfo) IOException(java.io.IOException) FileInputStream(java.io.FileInputStream) IOException(java.io.IOException) ZipOutputStream(java.util.zip.ZipOutputStream) FileOutputStream(java.io.FileOutputStream) SQLWriter(com.varsql.core.data.writer.SQLWriter) SQLExecuteResult(com.varsql.core.sql.executor.SQLExecuteResult) File(java.io.File)

Example 5 with DBType

use of com.varsql.core.db.DBType in project varsql by varsqlinfo.

the class SqlSourceBuilderTest method testOracle.

@Test
void testOracle() {
    String sql;
    DBType dbType = DBType.ORACLE;
    ;
    try {
        sql = getResourceContent("/query/query.txt");
        HashMap param = new HashMap();
        List<SqlSource> statements = SqlSourceBuilder.parse(sql, param, dbType);
        for (SqlSource statement : statements) {
            System.out.println("main sysout " + statement.getQuery());
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}
Also used : HashMap(java.util.HashMap) DBType(com.varsql.core.db.DBType) Test(org.junit.jupiter.api.Test) BaseTest(com.varsql.core.test.BaseTest)

Aggregations

DBType (com.varsql.core.db.DBType)5 HashMap (java.util.HashMap)3 BaseTest (com.varsql.core.test.BaseTest)2 SQLStatement (com.alibaba.druid.sql.ast.SQLStatement)1 MySQLTemplates (com.querydsl.sql.MySQLTemplates)1 SQLTemplates (com.querydsl.sql.SQLTemplates)1 SpringExceptionTranslator (com.querydsl.sql.spring.SpringExceptionTranslator)1 DateTimeType (com.querydsl.sql.types.DateTimeType)1 LocalDateType (com.querydsl.sql.types.LocalDateType)1 ProgressInfo (com.varsql.core.common.beans.ProgressInfo)1 VarsqlFileType (com.varsql.core.common.code.VarsqlFileType)1 BlankConstants (com.varsql.core.common.constants.BlankConstants)1 VarsqlConstants (com.varsql.core.common.constants.VarsqlConstants)1 SecurityUtil (com.varsql.core.common.util.SecurityUtil)1 Configuration (com.varsql.core.configuration.Configuration)1 SQLWriter (com.varsql.core.data.writer.SQLWriter)1 MetaControlBean (com.varsql.core.db.MetaControlBean)1 MetaControlFactory (com.varsql.core.db.MetaControlFactory)1 VarsqlReportConfig (com.varsql.core.db.report.VarsqlReportConfig)1 ObjectType (com.varsql.core.db.servicemenu.ObjectType)1