使用java在未知表字段情况下通过sql查询信息
【摘要】 使用java在未知表字段情况下通过sql查询信息
场景
在只知道表名,不知道表包含哪些字段情况下,查询该表信息的场景
解决方案
@Test
public void test() {
Connection connection;
String DB_URL = "jdbc:mysql://192.168.20.75:9950/geespace_bd_platform_dev?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&";
List<Map<String, Object>> data = new ArrayList<>();
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection(DB_URL, "geespace", "gee123456");
stmt = connection.createStatement();
// 获取sql
// rs = stmt.executeQuery("SELECT nth_interval_of_temperature1,number_of_temperature1 FROM 114_interval_statistical_table GROUP BY nth_interval_of_temperature1,number_of_temperature1 order BY nth_interval_of_temperature1 asc");
rs = stmt.executeQuery("SELECT * from ge_drag_spark_task");
ResultSetMetaData rsmd = rs.getMetaData();
while (rs.next()) {
for (int i = 1; i <= rsmd.getColumnCount(); i++) {
Map<String, Object> map = new HashMap<>(1);
map.put(rsmd.getColumnName(i), rs.getObject(i));
data.add(map);
}
}
for (Map<String, Object> map: data) {
log.info(" map:{}", map);
}
} catch (SQLException e) {
log.error("[getColumnData Exception] --> the exception message is:{}", e.getMessage());
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
finally {
JdbcUtils.close(rs);
JdbcUtils.close(stmt);
}
}
重要信息
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)