package com.walker.dbmeta;
import com.walker.connector.Address;
import com.walker.connector.support.DatabaseConnector;
import com.walker.db.DatabaseException;
import com.walker.db.TableInfo;
import com.walker.db.page.GenericPager;
import java.util.List;
import java.util.Map;
/**
* 数据库元数据引擎定义,仅获取数据库的元数据相关信息,与系统没有关系。
* 该对象为全局对象,通常创建单例使用。一个系统中可以创建多个,如:MySQL引擎、Oracle引擎等。
* 在数据采集系统中会存在许多数据源,因此建议实现类中增加数据连接的缓存器来管理这些链接。
* @author shikeying
* @date 2015年12月18日
*
*/
public interface DatabaseMetaEngine {
/**
* 返回表中字段对象集合
* @param address
* @param tableName
* @return
*/
public List getFieldsObject(Address address, String tableName);
/**
* 返回表中所有字段集合
* @param address 连接的数据库地址
* @param tableName 查询的表名
* @return
*/
List getFields(Address address, String tableName);
/**
* 返回该地址数据库中存在的表数量
* @param address
* @return
*/
int getTableSize(Address address);
/**
* 返回给定表集合中,每个表的概要数据量(行数)。
* 该数据是从数据库元数据表中查询的值,只是一个参考结果。
* @param address
* @param tableNameList
* @return map<tableName, rows>
*/
Map getTableRows(Address address, List tableNameList);
/**
* 返回给定的表当前记录数
* @param address
* @param tableName
* @return
*/
long getTableRow(Address address, String tableName);
List