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。在打开数据源的时候需要注意的是,要明确数据源对应的数据引擎,才能正确的打开数据源。
        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(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 - 一个用于接收数据源关闭后事件的监听器。
      • 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 - 一个用于接收数据源创建事件的监听器。
      • fixDatasource

        public boolean fixDatasource(DatasourceConnectionInfo connectionInfo)
        主动修复数据源。
        参数:
        connectionInfo - 待修复的数据源连接信息。
        返回:
        修复成功后返回true

Copyright © 2021–2024 SuperMap. All rights reserved.