Springboot实现sql预览

Springboot实现sql预览@TOC

欢迎使用Markdown编辑器

public class SqlDto {
/**
* 数据源id
/
private String id;
/
*
*sql语句
*/
private String sql;
}

新的改变

public RestVO getSqlList(SqlDto sqlDto) {
String id = sqlDto.getId();
DataSourceManagement dataSourceManagement = sysDataSourceManagementMapper.selectById(id);
boolean connBoolean = false;
//解密之后的密码
String decrypt = AesUtils.decrypt(dataSourceManagement.getDataPass());
String sql = sqlDto.getSql();
dataSourceManagement.setDataPass(decrypt);
if (DatabaseTypeEnum.MySql.getValue().equals(dataSourceManagement.getDataType())) {
Connection conn = null;
try {
//1 加载驱动
Class.forName(“com.mysql.jdbc.Driver”);
//2拼接url
String url = “jdbc:mysql://” + dataSourceManagement.getDataUrl() + “:” + dataSourceManagement.getDataPort().toString() + “/” + dataSourceManagement.getDataName() + “?useUnicode=true&characterEncoding=UTF8&serverTimezone=UTC&useSSL=false”;
conn = DriverManager.getConnection(url, dataSourceManagement.getDataUser(), dataSourceManagement.getDataPass());
// 3.获取数据库操作对象
Statement statement = conn.createStatement();
// 4.执行sql
ResultSet resultSet = statement.executeQuery(sql);
List list = new ArrayList();
ResultSetMetaData md = resultSet.getMetaData();
int columnCount = md.getColumnCount();
while (resultSet.next()) {
Map rowData = new HashMap();
for (int i = 1; i <= columnCount; i++) {
rowData.put(md.getColumnName(i), resultSet.getObject(i));
}
list.add(rowData);
}
// 5.关闭连接
statement.close();
conn.close();
return RestVO.ok(list);
} catch (Exception e) {
e.printStackTrace();
return RestVO.error(“mysql查询错误”);
}
} else if (DatabaseTypeEnum.Oracle.getValue().equals(dataSourceManagement.getDataType())) {
dataSourceManagement.setDataName(“ORCL”);
Connection conn = null;
try {
//1 加载驱动
Class.forName(“oracle.jdbc.driver.OracleDriver”);
//2拼接url
String url = “jdbc:oracle:thin:@” + dataSourceManagement.getDataUrl() + “:” + dataSourceManagement.getDataPort().toString() + “:” + dataSourceManagement.getDataName();
conn = DriverManager.getConnection(url, dataSourceManagement.getDataUser(), dataSourceManagement.getDataPass());
// 3.获取数据库操作对象
Statement statement = conn.createStatement();
// 4.执行sql
ResultSet resultSet = statement.executeQuery(sql);
List list = new ArrayList();
ResultSetMetaData md = resultSet.getMetaData();
int columnCount = md.getColumnCount();
while (resultSet.next()) {
Map rowData = new HashMap();
for (int i = 1; i <= columnCount; i++) {
rowData.put(md.getColumnName(i), resultSet.getObject(i));
}
list.add(rowData);
}
// 5.关闭连接
statement.close();
conn.close();
return RestVO.ok(list);
} catch (Exception e) {
e.printStackTrace();
return RestVO.error(“Oracle查询错误”);
}
} else if (DatabaseTypeEnum.PostgreSQL.getValue().equals(dataSourceManagement.getDataType())) {

        Connection conn = null;
        try {
            //1 加载驱动
            Class.forName("org.postgresql.Driver");
            //2拼接url
            String url = "jdbc:postgresql://" + dataSourceManagement.getDataUrl() + ":" + dataSourceManagement.getDataPort() + "/" + dataSourceManagement.getDataName()+ "?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true";
            conn = DriverManager.getConnection(url, dataSourceManagement.getDataUser(), dataSourceManagement.getDataPass());
            // 3.获取数据库操作对象
            Statement statement = conn.createStatement();
            // 4.执行sql
            ResultSet resultSet = statement.executeQuery(sql);
            List list = new ArrayList();
            ResultSetMetaData md = resultSet.getMetaData();
            int columnCount = md.getColumnCount();
            while (resultSet.next()) {
                Map rowData = new HashMap();
                for (int i = 1; i <= columnCount; i++) {
                    rowData.put(md.getColumnName(i), resultSet.getObject(i));
                }
                list.add(rowData);
            }
            // 5.关闭连接
            statement.close();
            conn.close();
            return RestVO.ok(list);
        } catch (Exception e) {
            e.printStackTrace();
            return RestVO.error("Postgresql查询错误");
        }
    }
    return null;
}

功能快捷键

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值