public class Datasource
extends java.lang.Object
数据源类。
该类管理投影信息、数据源与数据库的连接信息和对其中的数据集的相关操作,如通过已有数据集复制生成新的数据集等。
每个数据源对应一种数据引擎。UDB 数据源属于文件型数据源。
数据源定义了一致的数据访问接口和规范。数据源的物理存储既可以是文件方式,也可以是数据库方式。区别不同存储方式的主要依据是其所采用的数据引擎类型:采用 UDB 引擎时,数据源以文件方式存储(*.udb,*.udd)——文件型数据源文件用.udb 文件存储空间数据,.udd 文件存储属性数据。
数据源对象通常作为工作空间中数据源集合中的一个元素。可以对数据源进行保存操作、对数据集进行复制操作。
一个工作空间可以打开多个数据源,不同的数据源通过不同的别名(Alias)进行标识。
其中值得一提的是我们假设数据源中的数据都使用同样的单位和空间参考系。
限定符和类型 | 方法和说明 |
---|---|
boolean |
changePassword(java.lang.String oldPassword,
java.lang.String newPassword,
DatasourceEncrytionType type)
修改当前数据源的密码
|
Dataset |
copyDataset(Dataset srcDataset,
java.lang.String desDatasetName,
EncodeType encodeType)
用于在相同或不同引擎数据源中复制数据集。
|
Dataset |
copyDataset(Dataset srcDataset,
java.lang.String desDatasetName,
EncodeType encodeType,
Charset nCharset)
根据指定的编码类型以及字符集类型复制数据集。
|
java.lang.String |
getAlias()
返回数据源的别名。
|
DatasourceConnectionInfo |
getConnectionInfo()
返回此数据源的连接信息。
|
Datasets |
getDatasets()
返回此数据源所包含的数据集的集合对象。
|
java.lang.String |
getDescription()
返回用户添加的关于数据源的描述信息。
|
PrjCoordSys |
getPrjCoordSys()
返回数据源的投影信息。
|
Workspace |
getWorkspace()
得到数据源所在的工作空间对象。
|
boolean |
isModified()
返回此数据源是否有改动。
|
boolean |
isOpened()
数据源是否已打开
|
boolean |
isReadOnly()
返回数据源是否以只读方式打开。
|
boolean |
mergeDatasets(java.lang.String datasetName,
boolean isRetainNewField,
DatasetVector... datasetVectors)
合并数据集
|
void |
RenameDatasource(java.lang.String name,
java.lang.String newName)
更改此Datasourc名称
|
boolean |
saveDatasource()
保存数据源
|
void |
setDescription(java.lang.String value)
设置用户添加的关于数据源的描述信息。
|
public Workspace getWorkspace()
public java.lang.String getAlias()
public DatasourceConnectionInfo getConnectionInfo()
DatasourceConnectionInfo
类。DatasourceConnectionInfo
public Datasets getDatasets()
public java.lang.String getDescription()
public void setDescription(java.lang.String value)
value
- 用户添加的关于数据源的描述信息。public boolean isModified()
public boolean isReadOnly()
对文件型数据源,如果只读方式打开,就是共享的,可以打开多次;如果以非只读方式打开,则只能打开一次。
对于影像数据源(IMAGEPLUGINS
引擎类型)只会以只读方式打开。
public Dataset copyDataset(Dataset srcDataset, java.lang.String desDatasetName, EncodeType encodeType)
Datasets.isAvailableDatasetName()
方法来判断目标数据集的名称是否合法,并且目标数据集的名称不能使用数据库的关键字;复制数据集时,可通过 EncodeType
参数来对数据集的编码方式进行修改。有关数据集存储的编码方式请参见 EncodeType
枚举类型。
由于CAD数据集不支持任何编码,对 CAD 数据集进行复制(copyDataset()
)操作时设置的 EncodeType
无效,即只能置为 NONE
。
从 ImagePlugin 打开的数据源中复制数据集到其他数据集无效,也不能向 ImagePlugin 数据源中复制数据集,因为这种引擎是只读的。
srcDataset
- 要复制的源数据集。desDatasetName
- 目标数据集的名称。encodeType
- 数据集的编码方式。EncodeType
public void copyDatasetTest() { // 假设打开一个工作空间 workspace 对象,工作空间中存在两个数据源对象:datasource 和 datasource_Des // 在数据源 datasource 中取出名为“World”的数据集,将其复制到数据源 datasource_Des 下 DatasetVector datasetVector = (DatasetVector) datasource.getDatasets(). get("World"); // 返回一个可用的目标数据集的名称,复制数据集 String datasetName = datasource_Des.getDatasets(). getAvailableDatasetName("World_1"); Dataset newDataset = datasource_Des.copyDataset(datasetVector, datasetName, EncodeType.INT32); }
public Dataset copyDataset(Dataset srcDataset, java.lang.String desDatasetName, EncodeType encodeType, Charset nCharset)
srcDataset
- 要复制的源数据集。desDatasetName
- 目标数据集的名称。encodeType
- 数据集的编码方式。nCharset
- 数据集的字符集类型。public PrjCoordSys getPrjCoordSys()
public boolean changePassword(java.lang.String oldPassword, java.lang.String newPassword, DatasourceEncrytionType type)
oldPassword
- 原始密码,不能为nullnewPassword
- 新密码,不能为nulltype
- 新密码使用的加密类型public boolean isOpened()
public void RenameDatasource(java.lang.String name, java.lang.String newName)
name
- 当前名称newName
- 更改名称public boolean saveDatasource()
public boolean mergeDatasets(java.lang.String datasetName, boolean isRetainNewField, DatasetVector... datasetVectors)
datasetName
- 合并后新的数据集isRetainNewField
- 是否保留数据集原有字段datasetVectors
- 需要合并的数据集