com.supermap.data
类 Datasources

java.lang.Object
  继承者 com.supermap.data.Datasources

public class Datasources
extends java.lang.Object

数据源的集合类。

对数据源进行管理,包括创建、打开、关闭数据源等功能。

一个工作空间的所有数据源都由一个数据源集合对象来进行管理。该类可以同时管理多种类型的数据源(UDB、Oracle、 SQL Server、PostgreSQL、DB2 等数据源),即在一个数据源集合对象中可以同时包括各种类型的数据源。实现了对数据源的无缝管理。


方法摘要
 void addAliasModifiedListener(DatasourceAliasModifiedListener l)
          添加一个用于接收修改数据源别名结束事件(DatasourceAliasModifiedEvent)的监听器。
 void addAliasModifyingListener(DatasourceAliasModifyingListener l)
          添加一个用于接收数据源别名被修改事件(DatasourceAliasModifyingEvent)的监听器。
 void addClosedListener(DatasourceClosedListener l)
          添加一个用于接收数据源关闭后事件(DatasourceClosedEvent)的监听器。
 void addClosingListener(DatasourceClosingListener l)
          添加一个用于接收数据源正在关闭事件(DatasourceClosingEvent)的监听器。
 void addCreatedListener(DatasourceCreatedListener l)
          添加一个用于接收数据源创建的事件(DatasourceCreatedEvent)的监听器。
 void addOpenedListener(DatasourceOpenedListener l)
          添加一个用于接收数据源打开事件(DatasourceOpenedEvent)的监听器。
 boolean close(int index)
          关闭指定序号的数据源。
 boolean close(java.lang.String alias)
          关闭指定别名的数据源。
 void closeAll()
          关闭所有数据源。
 boolean contains(java.lang.String alias)
          判断当前数据源集合对象中是否包含指定别名的数据源。
 Datasource create(DatasourceConnectionInfo connectionInfo)
          根据指定的连接信息创建数据源。
 Datasource get(int index)
          返回指定序号的数据源。
 Datasource get(java.lang.String alias)
          返回指定别名的数据源。
 int getCount()
          返回数据源集合中数据源的个数。
 int indexOf(java.lang.String alias)
          返回指定别名的数据源对象在当前数据源集合中的序号。
 boolean modifyAlias(java.lang.String oldAlias, java.lang.String newAlias)
          该方法用于修改数据源的别名。
 Datasource open(DatasourceConnectionInfo connectionInfo)
          根据指定的连接信息打开已经存在的数据源。
 void removeAliasModifiedListener(DatasourceAliasModifiedListener l)
          移除一个用于接收修改数据源别名结束事件(DatasourceAliasModifiedEvent)的监听器。
 void removeAliasModifyingListener(DatasourceAliasModifyingListener l)
          移除一个用于接收数据源别名被修改事件(DatasourceAliasModifyingEvent)的监听器。
 void removeClosedListener(DatasourceClosedListener l)
          移除一个用于接收数据源关闭后事件(DatasourceClosedEvent)的监听器。
 void removeClosingListener(DatasourceClosingListener l)
          移除一个用于接收数据源正在关闭事件(DatasourceClosingEvent)的监听器。
 void removeCreatedListener(DatasourceCreatedListener l)
          移除一个用于接收数据源创建的事件(DatasourceCreatedEvent)的监听器。
 void removeOpenedListener(DatasourceOpenedListener l)
          移除一个用于接收数据源打开事件(DatasourceOpenedEvent)的监听器。
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

方法详细信息

getCount

public int getCount()
返回数据源集合中数据源的个数。

返回:
数据源集合中数据源的个数。
默认值:
默认值为 0。

get

public Datasource get(int index)
返回指定序号的数据源。

参数:
index - 指定的数据源的序号。
返回:
指定序号的数据源。

get

public Datasource get(java.lang.String alias)
返回指定别名的数据源。

参数:
alias - 指定的数据源的别名。
返回:
指定别名的数据源。

open

public Datasource open(DatasourceConnectionInfo connectionInfo)
根据指定的连接信息打开已经存在的数据源。指定数据源不存在时返回 Null。在打开数据源的时候需要注意的是,要明确数据源对应的数据引擎,才能正确的打开数据源。
  1. 当用户想打开某一个文件型数据源(UDB)时,必须要有对应的空间数据库引擎(SDX+ for UDB);
  2. 当打开 Oracle 数据源时,那么用户必须安装 Oracle 客户端,建立数据库连接还要有对应的空间数据库引擎(SDX+ for Oracle);
  3. 当用户打开 SQL Server 类型的数据源时,必须要有对应的空间数据库引擎(SDX+ for SQL);
  4. 当打开 PostgreSQL 数据源时,那么用户必须安装 PostgreSQL 客户端,建立数据库连接还要有对应的空间数据库引擎(SDX+ for PostgreSQL);
  5. 当打开 DB2 数据源时,那么用户必须安装 DB2 客户端,并对 DB2 进行编目才能建立数据库连接,而建立数据库连接还要有对应的空间数据库引擎(SDX+ for DB2);
  6. 当用户打开 GoogleMaps 类型的数据源时,必须要有对应的空间数据库引擎(SDX+ for GoogleMaps);
  7. 当用户打开超图云服务类型的数据源时,必须要有对应的空间数据库引擎(SDX+ for SuperMapCloud);
  8. 当用户打开 REST 地图服务类型的数据源时,必须要有对应的空间数据库引擎(SDX+ for REST);
  9. 当用户打开天地图服务类型的数据源时,必须要有对应的空间数据库引擎(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(java.lang.String alias)
关闭指定别名的数据源。

参数:
alias - 指定的数据源的别名。
返回:
如果关闭数据源成功返回 true,否则返回 false。

closeAll

public void closeAll()
关闭所有数据源。


contains

public boolean contains(java.lang.String alias)
判断当前数据源集合对象中是否包含指定别名的数据源。

参数:
alias - 指定的数据源的别名。
返回:
如果包含指定别名的数据源,则返回 true,否则返回 false 。

indexOf

public int indexOf(java.lang.String alias)
返回指定别名的数据源对象在当前数据源集合中的序号。

参数:
alias - 指定的数据源的别名。
返回:
指定别名的数据源对象在当前数据源集合中的序号。如果数据源对象不存在,返回-1。

modifyAlias

public boolean modifyAlias(java.lang.String oldAlias,
                           java.lang.String newAlias)
该方法用于修改数据源的别名。

参数:
oldAlias - 待修改的数据源别名。
newAlias - 数据源的新别名。
返回:
如果对数据源修改别名成功,则返回 true,否则返回 false。特别地,当命名不区分大小写的情况下,例如 Datasources.modifyAlias ("aaa","AAA") 返回值为 false,重命名失败。

addCreatedListener

public void addCreatedListener(DatasourceCreatedListener l)
添加一个用于接收数据源创建的事件(DatasourceCreatedEvent)的监听器。

参数:
l - 一个用于接收数据源创建事件的监听器。

removeCreatedListener

public void removeCreatedListener(DatasourceCreatedListener l)
移除一个用于接收数据源创建的事件(DatasourceCreatedEvent)的监听器。

参数:
l - 一个用于接收数据源创建事件的监听器。

addOpenedListener

public void addOpenedListener(DatasourceOpenedListener l)
添加一个用于接收数据源打开事件(DatasourceOpenedEvent)的监听器。

参数:
l - 一个用于接收数据源打开事件的监听器。

removeOpenedListener

public void removeOpenedListener(DatasourceOpenedListener l)
移除一个用于接收数据源打开事件(DatasourceOpenedEvent)的监听器。

参数:
l - 一个用于接收数据源打开事件的监听器。

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 - 一个用于接收数据源关闭后事件的监听器。

addAliasModifyingListener

public void addAliasModifyingListener(DatasourceAliasModifyingListener l)
添加一个用于接收数据源别名被修改事件(DatasourceAliasModifyingEvent)的监听器。

参数:
l - 一个用于接收数据源别名被修改事件的监听器。

removeAliasModifyingListener

public void removeAliasModifyingListener(DatasourceAliasModifyingListener l)
移除一个用于接收数据源别名被修改事件(DatasourceAliasModifyingEvent)的监听器。

参数:
l - 一个用于接收数据源别名被修改事件的监听器。

addAliasModifiedListener

public void addAliasModifiedListener(DatasourceAliasModifiedListener l)
添加一个用于接收修改数据源别名结束事件(DatasourceAliasModifiedEvent)的监听器。

参数:
l - 一个用于接收修改数据源别名结束事件的监听器。

removeAliasModifiedListener

public void removeAliasModifiedListener(DatasourceAliasModifiedListener l)
移除一个用于接收修改数据源别名结束事件(DatasourceAliasModifiedEvent)的监听器。

参数:
l - 一个用于接收修改数据源别名结束事件的监听器。