企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## MetadataManager MetadataManager负责数据库元信息维护,BeetlSQL3自带的SchemaMetadataManager能读取目前按照JDBC规范,读取所有的数据库信息(但是,每个库对JDBC规范,仍然有不同) `initMetadataManager`方法是DBStyle初始化的时候调用,返回MetaManager类,用于管理数据库的metadata信息, ```java public interface DBStyle { MetadataManager initMetadataManager(ConnectionSource cs); } ``` 定义如下 ```java public interface MetadataManager { boolean existTable(String tableName); TableDesc getTable(String name); Set<String> allTable(); void addTableVirtuals(String realTable,String virtual); } ``` 通常,可以根据JDBC规范直接调用DatabaseMetaData获取数据库表信息,参考代码`SchemaMetadataManager`,如果有些库不支持metadata,譬如drill,查询文件,不提供metadata,你需要使用其`NoSchemaMetaDataManager`,此类能接受多个POJO类,根据POJO的定义,解析成MetaData信息,有点类似Hibenrate那样根据POJO类生成数据库 ```java public NoSchemaMetaDataManager(List<Class> beans){ beans.forEach(bean->parseBean(bean)); } public void addBean(Class bean){ parseBean(bean); } protected void parseBean(Class bean){ } } ``` parseBean会解析bean,得出目标数据库表的信息