类 AbstractDatabaseMetaEngine
java.lang.Object
com.walker.dbmeta.AbstractDatabaseMetaEngine
- 所有已实现的接口:
DatabaseMetaEngine
抽象的数据库元数据引擎定义。
该引擎仅作为数据库元数据管理,与系统元数据有区别。
系统元数据包含了对于业务表和库的管理,不包含具体数据库的详细信息,他也需要此引擎。
系统元数据包含了对于业务表和库的管理,不包含具体数据库的详细信息,他也需要此引擎。
- 作者:
- shikeying
-
字段概要
字段 -
构造器概要
构造器 -
方法概要
修饰符和类型方法说明protected abstract DatabaseConnectorcreateDbConnector(Address address) 根据不同数据库,创建不同的连接对象voidcreateTableDynamic(Address address, List<Map<String, Object>> datas, String dataVersionField, String tableName) 动态创建表结果,可能是关系数据库,也可能是NoSQL数据库类型。voiddestroy()使用完该对象,必须调用该方法销毁protected abstract voiddoCreateTableAction(Address address, List<FieldInfo> fieldList, String dataVersionField, String tableName) 具体创建表结构过程,由子类实现,如:关系数据库ddl,nosql数据库的schema等protected DatabaseConnectorgetConnector(Address address) 返回表中所有字段集合getFieldsObject(Address address, String tableName) 返回表中字段对象集合getTableNamesByLike(Address address, String tableNameLike) longgetTableRow(Address address, String tableName) 返回给定的表当前记录数getTableRows(Address address, List<String> tableNameList) 返回给定表集合中,每个表的概要数据量(行数)。intgetTableSize(Address address) 返回该地址数据库中存在的表数量void初始化,创建该对象后必须首先调用该方法。loadDatas(DatabaseConnector connector, String tableName, String sql) loadFields(DatabaseConnector connector, String tableName) 加载某个表的所有字段名字集合 // * @param schemaloadFieldsObject(DatabaseConnector connector, String tableName) 加载某个表的所有字段名字集合 // * @param schemaprotected abstract intloadSchemaTableSize(DatabaseConnector connnector) 加载给定数据库中存在多少个用户表数量loadTableDatas(Address address, String tableName, String sql) protected abstract longloadTableRow(DatabaseConnector connector, String tableName) loadTablesRow(Address address, DatabaseConnector connector, List<String> tableNameList) 加载给定表名集合,有多少条数据信息voidsetConnector(DatabaseConnector connector) 直接设置连接器对象,不再调用方法:initialize()从类继承的方法 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait从接口继承的方法 com.walker.dbmeta.DatabaseMetaEngine
queryPageTableNamesByLike
-
字段详细资料
-
logger
protected final transient org.slf4j.Logger logger
-
-
构造器详细资料
-
AbstractDatabaseMetaEngine
public AbstractDatabaseMetaEngine()
-
-
方法详细资料
-
getFieldsObject
返回表中字段对象集合- 指定者:
getFieldsObject在接口中DatabaseMetaEngine- 参数:
address-tableName-- 返回:
-
loadFieldsObject
加载某个表的所有字段名字集合 // * @param schema- 参数:
tableName- 表名- 返回:
- 字段名集合
-
getFields
从接口复制的说明:DatabaseMetaEngine返回表中所有字段集合- 指定者:
getFields在接口中DatabaseMetaEngine- 参数:
address- 连接的数据库地址tableName- 查询的表名- 返回:
-
getTableSize
从接口复制的说明:DatabaseMetaEngine返回该地址数据库中存在的表数量- 指定者:
getTableSize在接口中DatabaseMetaEngine- 返回:
-
getTableRows
从接口复制的说明:DatabaseMetaEngine返回给定表集合中,每个表的概要数据量(行数)。
该数据是从数据库元数据表中查询的值,只是一个参考结果。- 指定者:
getTableRows在接口中DatabaseMetaEngine- 返回:
- map<tableName, rows>
-
getTableRow
从接口复制的说明:DatabaseMetaEngine返回给定的表当前记录数- 指定者:
getTableRow在接口中DatabaseMetaEngine- 返回:
-
loadTableDatas
- 指定者:
loadTableDatas在接口中DatabaseMetaEngine
-
getConnector
-
initialize
public void initialize()从接口复制的说明:DatabaseMetaEngine初始化,创建该对象后必须首先调用该方法。- 指定者:
initialize在接口中DatabaseMetaEngine
-
destroy
public void destroy()从接口复制的说明:DatabaseMetaEngine使用完该对象,必须调用该方法销毁- 指定者:
destroy在接口中DatabaseMetaEngine
-
createDbConnector
根据不同数据库,创建不同的连接对象- 参数:
address-- 返回:
-
loadSchemaTableSize
加载给定数据库中存在多少个用户表数量- 参数:
connnector-- 返回:
-
loadFields
加载某个表的所有字段名字集合 // * @param schema- 参数:
tableName- 表名- 返回:
- 字段名集合
-
loadTablesRow
protected abstract Map<String,TableInfo> loadTablesRow(Address address, DatabaseConnector connector, List<String> tableNameList) 加载给定表名集合,有多少条数据信息- 参数:
connector-tableNameList-- 返回:
-
loadTableRow
-
loadDatas
protected abstract List<Map<String,Object>> loadDatas(DatabaseConnector connector, String tableName, String sql) throws Exception - 抛出:
Exception
-
getTableNamesByLike
- 指定者:
getTableNamesByLike在接口中DatabaseMetaEngine
-
createTableDynamic
public void createTableDynamic(Address address, List<Map<String, Object>> datas, String dataVersionField, String tableName) throws DatabaseException从接口复制的说明:DatabaseMetaEngine动态创建表结果,可能是关系数据库,也可能是NoSQL数据库类型。 给定一个数据集合,从中分析数据类型,生成简单的存储表。
因为这个是在数据采集时使用,所以目前仅支持三种数据类型:string|long|double- 指定者:
createTableDynamic在接口中DatabaseMetaEngine- 参数:
address- 目的地址datas- 给定的数据集合dataVersionField- 数据版本字段名称,该字段用来增量采集数据对比,通常是数值类型。tableName- 要创建的表名称- 抛出:
DatabaseException- 创建失败,抛出异常
-
doCreateTableAction
protected abstract void doCreateTableAction(Address address, List<FieldInfo> fieldList, String dataVersionField, String tableName) throws DatabaseException 具体创建表结构过程,由子类实现,如:关系数据库ddl,nosql数据库的schema等- 参数:
fieldList- 字段集合dataVersionField- 数据版本字段名称(一定是数值)tableName- 表名- 抛出:
DatabaseException- 抛出检查异常
-
getConnector
- 指定者:
getConnector在接口中DatabaseMetaEngine
-
setConnector
从接口复制的说明:DatabaseMetaEngine直接设置连接器对象,不再调用方法:initialize()- 指定者:
setConnector在接口中DatabaseMetaEngine
-