https://github.com/renfei/database-metadata
Extracting Database Metadata Using JDBC
https://github.com/renfei/database-metadata
Last synced: 4 months ago
JSON representation
Extracting Database Metadata Using JDBC
- Host: GitHub
- URL: https://github.com/renfei/database-metadata
- Owner: renfei
- License: apache-2.0
- Created: 2022-09-26T02:02:03.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2022-09-26T02:09:50.000Z (about 3 years ago)
- Last Synced: 2025-08-15T22:26:25.820Z (4 months ago)
- Language: Java
- Size: 42 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[[简体中文](./README_ZH.md)] | [[English](./README.md)]
# Extracting Database Metadata Using JDBC
Extract database metadata based on JDBC connection, including `Catalog`, `Schema`, `Table`, `Colum` information.
## Supported Databases
- [x] MySQL
- [x] MariaDB
- [ ] PostgreSQL
- [ ] Oracle
- [ ] Microsoft SQL Server
- [ ] IBM DB2
- [ ] Sybase
- [ ] Informix
- [x] DMDBMS(武汉达梦数据库)
- [ ] KingbaseES(人大金仓数据库)
- [ ] OSCAR(神舟通用数据库)
## Install
### Maven
```xml
net.renfei
database-metadata
1.0.0-SNAPSHOT
```
## Example
```java
package net.renfei.dbmeta;
import org.junit.Test;
import java.sql.SQLException;
/**
* @author renfei
*/
public class MySqlDatabaseMetadataTest {
@Test
public void test() throws SQLException, ClassNotFoundException {
DatabaseMetadata databaseMetadata = DatabaseMetadataFactory.getDatabaseMetadata(
"jdbc:mysql://localhost:3306/renfeid?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC",
"root", "root");
assert databaseMetadata != null;
System.out.println(databaseMetadata.getDatabaseProductName());
System.out.println(databaseMetadata.getDatabaseProductVersion());
System.out.println(databaseMetadata.getCatalogs());
System.out.println(databaseMetadata.getSchemas("renfeid"));
System.out.println(databaseMetadata.getTables("renfeid", null));
System.out.println(databaseMetadata.getColum("renfeid", null, "kitbox_icp_cache"));
}
}
```
> Note: MySQL uses `catalog` instead of `schema`.