com.supermap.data
类 Datasources
- java.lang.Object
-
- com.supermap.data.Datasources
-
public class Datasources extends Object
数据源的集合类。
对数据源进行管理,包括创建、打开、关闭数据源等功能。
一个工作空间的所有数据源都由一个数据源集合对象来进行管理。该类可以同时管理多种类型的数据源(UDB、Oracle、 SQL Server、PostgreSQL、DB2 等数据源),即在一个数据源集合对象中可以同时包括各种类型的数据源。实现了对数据源的无缝管理。
-
-
方法概要
-
-
-
方法详细资料
-
getCount
public int getCount()
返回数据源集合中数据源的个数。- 返回:
- 数据源集合中数据源的个数。
- 默认值:
- 默认值为 0。
-
add
public boolean add(Datasource datasource)
添加一个数据源对象到当前的数据源集合中。- 参数:
datasource
- 数据源对象。- 返回:
- 添加成功返回 true,否则返回 false。
-
get
public Datasource get(int index)
返回指定序号的数据源。- 参数:
index
- 指定的数据源的序号。- 返回:
- 指定序号的数据源。
-
get
public Datasource get(String alias)
返回指定别名的数据源。- 参数:
alias
- 指定的数据源的别名。- 返回:
- 指定别名的数据源。
-
open
public Datasource open(DatasourceConnectionInfo connectionInfo)
根据指定的连接信息打开已经存在的数据源。指定数据源不存在时返回 Null。在打开数据源的时候需要注意的是,要明确数据源对应的数据引擎,才能正确的打开数据源。- 当用户想打开某一个文件型数据源(UDB)时,必须要有对应的空间数据库引擎(SDX+ for UDB);
- 当打开 Oracle 数据源时,那么用户必须安装 Oracle 客户端,建立数据库连接还要有对应的空间数据库引擎(SDX+ for Oracle);
- 当用户打开 SQL Server 类型的数据源时,必须要有对应的空间数据库引擎(SDX+ for SQL);
- 当打开 PostgreSQL 数据源时,那么用户必须安装 PostgreSQL 客户端,建立数据库连接还要有对应的空间数据库引擎(SDX+ for PostgreSQL);
- 当打开 DB2 数据源时,那么用户必须安装 DB2 客户端,并对 DB2 进行编目才能建立数据库连接,而建立数据库连接还要有对应的空间数据库引擎(SDX+ for DB2);
- 当用户打开 GoogleMaps 类型的数据源时,必须要有对应的空间数据库引擎(SDX+ for GoogleMaps);
- 当用户打开超图云服务类型的数据源时,必须要有对应的空间数据库引擎(SDX+ for SuperMapCloud);
- 当用户打开 REST 地图服务类型的数据源时,必须要有对应的空间数据库引擎(SDX+ for REST);
- 当用户打开天地图服务类型的数据源时,必须要有对应的空间数据库引擎(SDX+ for MAPWORLD)。
- 参数:
connectionInfo
- 指定的数据源连接信息。- 返回:
- 打开的数据源。
- 示范代码:
- 请参见
DatasourceConnectionInfo
类的示例。
-
create
public Datasource create(DatasourceConnectionInfo connectionInfo)
根据指定的连接信息创建数据源。如果待创建的数据源已经存在则返回 null。创建 DB2 数据源之前,需要先在其客户端新建一个数据库,然后在这个空数据库下进行数据源的创建。
创建内存数据源的方式:
datasourceConnnectionInfo.setEngineType(EngineType.UDB);
datasourceConnnectionInfo.setServer(":memory:");
在Windows平台下使用 Datasources.Create() 方法创建文件型数据源时,由于Windows资源的限制,单个应用程序允许打开的文件句柄数不能大于509个,因此,当创建第509个文件型数据源时,会发生以下两种情况:
1. 如果用户配置的是文件型许可,则在创建第509个文件型数据源后,将抛出许可异常;
2. 如果用户配置的是硬件许可,则在创建第509个文件型数据源后,Datasources.Create() 方法返回null值。
- 参数:
connectionInfo
- 数据源连接信息。- 返回:
- 新创建的数据源。
- 示范代码:
- 以下代码示例了创建一个 OraclePlus 数据源。
public void datasourcesExample() { Workspace workspace = new Workspace(); //设置 OraclePlus 数据源连接信息(对于 SQL Server 类型的数据源,还要设置驱动,即 info.setDriver("SQL Server")) DatasourceConnectionInfo info = new DatasourceConnectionInfo(); info.setAlias("supermap_alias"); info.setDatabase("ugo"); info.setEngineType(EngineType.ORACLEPLUS); info.setUser("map"); info.setPassword("map"); info.setServer("supermap"); //创建数据源 Datasources datasources = workspace.getDatasources(); Datasource datsource = datasources.create(info); //判断是否创建成功 if (datsource == null) { System.out.println("数据源创建失败"); } else { System.out.println("数据源创建成功"); } //释放资源 workspace.dispose(); }
-
close
public boolean close(int index)
关闭指定序号的数据源。- 参数:
index
- 指定的数据源的序号。- 返回:
- 如果关闭数据源成功返回 true,否则返回 false。
-
close
public boolean close(String alias)
关闭指定别名的数据源。- 参数:
alias
- 指定的数据源的别名。- 返回:
- 如果关闭数据源成功返回 true,否则返回 false。
-
closeAll
public void closeAll()
关闭所有数据源。
-
contains
public boolean contains(String alias)
判断当前数据源集合对象中是否包含指定别名的数据源。- 参数:
alias
- 指定的数据源的别名。- 返回:
- 如果包含指定别名的数据源,则返回 true,否则返回 false 。
-
indexOf
public int indexOf(String alias)
返回指定别名的数据源对象在当前数据源集合中的序号。- 参数:
alias
- 指定的数据源的别名。- 返回:
- 指定别名的数据源对象在当前数据源集合中的序号。如果数据源对象不存在,返回-1。
-
modifyAlias
public boolean modifyAlias(String oldAlias, String newAlias)
该方法用于修改数据源的别名。- 参数:
oldAlias
- 待修改的数据源别名。newAlias
- 数据源的新别名。- 返回:
- 如果对数据源修改别名成功,则返回 true,否则返回 false。特别地,当命名不区分大小写的情况下,例如
Datasources.modifyAlias ("aaa","AAA")
返回值为 false,重命名失败。
-
addClosingListener
public void addClosingListener(DatasourceClosingListener l)
添加一个用于接收数据源正在关闭事件(DatasourceClosingEvent
)的监听器。- 参数:
l
- 一个用于接收数据源正在关闭事件的监听器。
-
removeClosingListener
public void removeClosingListener(DatasourceClosingListener l)
移除一个用于接收数据源正在关闭事件(DatasourceClosingEvent
)的监听器。- 参数:
l
- 一个用于接收数据源正在关闭事件的监听器。
-
addClosedListener
public void addClosedListener(DatasourceClosedListener l)
添加一个用于接收数据源关闭后事件(DatasourceClosedEvent
)的监听器。- 参数:
l
- 一个用于接收数据源关闭后事件的监听器。
-
removeClosedListener
public void removeClosedListener(DatasourceClosedListener l)
移除一个用于接收数据源关闭后事件(DatasourceClosedEvent
)的监听器。- 参数:
l
- 一个用于接收数据源关闭后事件的监听器。
-
addAliasModifiedListener
public void addAliasModifiedListener(DatasourceAliasModifiedListener l)
添加一个用于接收修改数据源别名结束事件(DatasourceAliasModifiedEvent
)的监听器。- 参数:
l
- 一个用于接收修改数据源别名结束事件的监听器。
-
removeAliasModifiedListener
public void removeAliasModifiedListener(DatasourceAliasModifiedListener l)
移除一个用于接收修改数据源别名结束事件(DatasourceAliasModifiedEvent
)的监听器。- 参数:
l
- 一个用于接收修改数据源别名结束事件的监听器。
-
addOpenedListener
public void addOpenedListener(DatasourceOpenedListener l)
添加一个用于接收数据源打开事件(DatasourceOpenedEvent
)的监听器。- 参数:
l
- 一个用于接收数据源打开事件的监听器。
-
removeOpenedListener
public void removeOpenedListener(DatasourceOpenedListener l)
移除一个用于接收数据源打开事件(DatasourceOpenedEvent
)的监听器。- 参数:
l
- 一个用于接收数据源打开事件的监听器。
-
addCreatedListener
public void addCreatedListener(DatasourceCreatedListener l)
添加一个用于接收数据源创建的事件(DatasourceCreatedEvent
)的监听器。- 参数:
l
- 一个用于接收数据源创建事件的监听器。
-
removeCreatedListener
public void removeCreatedListener(DatasourceCreatedListener l)
移除一个用于接收数据源创建的事件(DatasourceCreatedEvent
)的监听器。- 参数:
l
- 一个用于接收数据源创建事件的监听器。
-
addAliasModifyingListener
public void addAliasModifyingListener(DatasourceAliasModifyingListener l)
添加一个用于接收数据源别名被修改事件(DatasourceAliasModifyingEvent
)的监听器。- 参数:
l
- 一个用于接收数据源别名被修改事件的监听器。
-
removeAliasModifyingListener
public void removeAliasModifyingListener(DatasourceAliasModifyingListener l)
移除一个用于接收数据源别名被修改事件(DatasourceAliasModifyingEvent
)的监听器。- 参数:
l
- 一个用于接收数据源别名被修改事件的监听器。
-
fixDatasource
public boolean fixDatasource(DatasourceConnectionInfo connectionInfo)
主动修复数据源。- 参数:
connectionInfo
- 待修复的数据源连接信息。- 返回:
- 修复成功后返回true
-
-
Copyright © 2021–2024 SuperMap. All rights reserved.