/**
* TODO
*
* @author FM_南风
* @date 2024/2/28 11:10
*/
@RestController
@RequestMapping("/test")
@Slf4j
public class TestController {
@Value("${spring.datasource.url}")
private String url;
@Value("${spring.datasource.username}")
private String username;
@Value("${spring.datasource.password}")
private String password;
@GetMapping("/date")
public JsonResult getDateBaseInfo(){
try (Connection conn = DriverManager.getConnection(url, username, password)) {
DatabaseMetaData metaData = conn.getMetaData();
// 获取所有表的信息
ResultSet tables = metaData.getTables(null, null, null, new String[]{"TABLE"});
while (tables.next()) {
String tableName = tables.getString("TABLE_NAME");
// 获取表的字段信息
ResultSet columns = metaData.getColumns(null, null, tableName, null);
while (columns.next()) {
String columnName = columns.getString("COLUMN_NAME");//字段名称
String columnType = columns.getString("TYPE_NAME");//字段类型
int columnSize = columns.getInt("COLUMN_SIZE");//字段长度
boolean isNullable = columns.getBoolean("NULLABLE");//是否为空
String defaultValue = columns.getString("COLUMN_DEF");//默认值
String remarks = columns.getString("REMARKS");//备注
int decimalDigits = columns.getInt("DECIMAL_DIGITS"); // 小数位数
//查询主键
ResultSet primaryKeys = metaData.getPrimaryKeys(null, null, tableName);
while (primaryKeys.next()) {
String primaryKeyColumnName = primaryKeys.getString("COLUMN_NAME");
}
}
columns.close();
}
tables.close();
} catch (SQLException e) {
e.printStackTrace();
}
return JsonResult.ok();
}
}
java程序通过JDBC连接查询数据库表名、字段、类型、长度、约束等
于 2024-02-28 10:25:22 首次发布