diff --git a/src/main/java/com/gitee/freakchicken/DBApi.java b/src/main/java/com/gitee/freakchicken/DBApi.java index 7135b7360aadb5f999d43ae7056e406a759ae8fd..7d50ed4ef7fe120f38a2b182629dbf0860d76c59 100644 --- a/src/main/java/com/gitee/freakchicken/DBApi.java +++ b/src/main/java/com/gitee/freakchicken/DBApi.java @@ -1,19 +1,22 @@ package com.gitee.freakchicken; -import com.github.freakchick.orange.SqlMeta; -import com.github.freakchick.orange.engine.DynamicSqlEngine; import com.gitee.freakchicken.entity.DBConfig; import com.gitee.freakchicken.entity.DataSource; import com.gitee.freakchicken.entity.ResponseDto; import com.gitee.freakchicken.entity.Sql; import com.gitee.freakchicken.util.JdbcUtil; import com.gitee.freakchicken.util.XmlParser; - +import com.github.freakchick.orange.SqlMeta; +import com.github.freakchick.orange.engine.DynamicSqlEngine; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.io.Charsets; import org.apache.commons.io.FileUtils; +import org.apache.commons.io.IOUtils; +import org.springframework.core.io.ClassPathResource; import org.springframework.util.ResourceUtils; import java.io.File; +import java.io.InputStream; import java.nio.charset.StandardCharsets; import java.util.Map; @@ -37,13 +40,27 @@ public class DBApi { this.dbConfig = dbConfig; try { - File file = ResourceUtils.getFile(this.dbConfig.getSql()); - String content = FileUtils.readFileToString(file, StandardCharsets.UTF_8); - this.sqlMap = XmlParser.parseSql(content); + String sqlContent; + try { + File sqlFile = ResourceUtils.getFile(this.dbConfig.getSql()); + sqlContent = FileUtils.readFileToString(sqlFile, StandardCharsets.UTF_8); + } catch (Exception exception) { + ClassPathResource sqlResource = new ClassPathResource(this.dbConfig.getSql()); + InputStream sqlInputStream = sqlResource.getInputStream(); + sqlContent = IOUtils.toString(sqlInputStream, Charsets.toCharset(StandardCharsets.UTF_8)); + } + this.sqlMap = XmlParser.parseSql(sqlContent); - File dsFile = ResourceUtils.getFile(this.dbConfig.getDatasource()); - String dsText = FileUtils.readFileToString(dsFile, StandardCharsets.UTF_8); - this.dataSourceMap = XmlParser.parseDatasource(dsText); + String dsContent; + try { + File dsFile = ResourceUtils.getFile(this.dbConfig.getDatasource()); + dsContent = FileUtils.readFileToString(dsFile, StandardCharsets.UTF_8); + } catch (Exception exception) { + ClassPathResource dsResource = new ClassPathResource(this.dbConfig.getDatasource()); + InputStream dsInputStream = dsResource.getInputStream(); + dsContent = IOUtils.toString(dsInputStream, Charsets.toCharset(StandardCharsets.UTF_8)); + } + this.dataSourceMap = XmlParser.parseDatasource(dsContent); } catch (Exception e) { e.printStackTrace(); }