springboot中DataSource获取数据库中所有的表
时间: 2024-04-30 15:21:52 浏览: 259
获取数据库中的所有表(2.0)
在 Spring Boot 中,可以使用 `JdbcTemplate` 或 `DataSource` 来获取数据库中的所有表。
使用 `JdbcTemplate` 的方式如下:
```java
@Autowired
private JdbcTemplate jdbcTemplate;
public List<String> getAllTables() {
List<String> tables = new ArrayList<>();
String sql = "SHOW TABLES";
jdbcTemplate.query(sql, rs -> {
while (rs.next()) {
tables.add(rs.getString(1));
}
});
return tables;
}
```
使用 `DataSource` 的方式如下:
```java
@Autowired
private DataSource dataSource;
public List<String> getAllTables() throws SQLException {
List<String> tables = new ArrayList<>();
try (Connection connection = dataSource.getConnection()) {
DatabaseMetaData metaData = connection.getMetaData();
try (ResultSet rs = metaData.getTables(null, null, "%", new String[]{"TABLE"})) {
while (rs.next()) {
tables.add(rs.getString(3));
}
}
}
return tables;
}
```
这两种方式都可以获取数据库中的所有表,并且返回一个字符串列表。注意需要在 `application.properties` 中配置数据库连接信息。
阅读全文