com.supermap.data

类 DatasourceConnectionInfo

  • java.lang.Object
    • com.supermap.data.InternalHandle
      • com.supermap.data.InternalHandleDisposable
        • com.supermap.data.DatasourceConnectionInfo
  • 所有已实现的接口:
    IDisposable
    直接已知子类:
    InternalDatasourceConnectionInfo


    public class DatasourceConnectionInfo
    extends com.supermap.data.InternalHandleDisposable

    数据源连接信息类。

    包括了进行数据源连接的所有信息,如所要连接的服务器名称,数据库名称、用户名、密码等。当保存工作空间时,工作空间中的数据源的连接信息都将存储到工作空间文件中。对于不同类型的数据源,其连接信息有所区别。所以在使用该类所包含的成员时,请注意该成员所适用的数据源类型。

    对于从数据源对象中返回的数据源连接信息对象,只有 isAutoConnect 方法可以被修改,其它内容是不可以被修改的。对于用户创建的数据源连接信息对象,其内容都可以修改。

    SuperMap iObjects Java 7C 支持 UDB 引擎下的内存数据源,允许用户在内存中创建数据源。

    示范代码:
    以下代码示范如何打开不同引擎类型的数据源。
     public static void main(int m_DsType) {
            // 定义工作空间
            Workspace workspace = new Workspace();
    
            // 定义数据源连接信息,假设以下所有数据源设置都存在
            DatasourceConnectionInfo datasourceconnection = new
                    DatasourceConnectionInfo();
    
            // 根据不同引擎类型的数据源进行相应连接信息的读取
            switch (m_DsType) {
    
            // SQLPlus 数据源(必须设置 setDriver() 方法)
            case 2:
                // 设置 SQL 数据源连接需要的参数
                datasourceconnection.setEngineType(EngineType.SQLPLUS);
                datasourceconnection.setServer("Server");
                datasourceconnection.setDatabase("Database");
                datasourceconnection.setUser("User");
                datasourceconnection.setPassword("Java");
                datasourceconnection.setAlias("SQL");
                datasourceconnection.setDriver("SQL Server");
                break;
    
            // OraclePlus 数据源
            case 3:
                // 设置 Oracle 数据源连接所需要的参数
                datasourceconnection.setEngineType(EngineType.ORACLEPLUS);
                datasourceconnection.setServer("Server");
                datasourceconnection.setDatabase("Database");
                datasourceconnection.setUser("User");
                datasourceconnection.setPassword("Java");
                datasourceconnection.setAlias("ORACLE");
                break;
                
            // PostgreSQL 数据源
            case 4:
                //设置 PostgreSQL 数据源连接所需要的参数
                datasourceconnection.setEngineType(EngineType.POSTGRESQL);
                datasourceconnection.setServer("Server");
                datasourceconnection.setDatabase("Database");
                datasourceconnection.setUser("User");
                datasourceconnection.setPassword("Java");
                datasourceconnection.setAlias("PostgreSQL");
                break;
                
            // DB2 数据源
            case 5:
                //设置 DB2 数据源连接所需要的参数
                datasourceconnection.setEngineType(EngineType.DB2);
                datasourceconnection.setDatabase("Database");
                datasourceconnection.setUser("User");
                datasourceconnection.setPassword("Java");
                datasourceconnection.setAlias("DB2");
                break;
                
            // GoogleMaps 数据源
            case 6:
                //设置 GoogleMaps 数据源连接所需要的参数
                datasourceconnection.setEngineType(EngineType.GOOGLEMAPS);
                datasourceconnection.setPassword("Key");
                datasourceconnection.setAlias("GoogleMap");
                break;
                
            // SuperMapCloud 数据源
            case 7:
                //设置 SuperMapCloud 数据源连接所需要的参数
                datasourceconnection.setEngineType(EngineType.SUPERMAPCLOUD);
                datasourceconnection.setDatabase("D:/Cache");
                datasourceconnection.setAlias("SuperMapCloud");
                break;
                
            // WMTS 服务
            case 8:
                //设置连接 iServer 所发布的 WMTS 服务所需要的参数,其中必须调用setDriver("WMTS")方法设置驱动名称。
                datasourceconnection.setEngineType(EngineType.OGC);
                    datasourceconnection.setServer("http://localhost:8090/iserver/services/map-china400/wmts100");
                    datasourceconnection.setDatabase("D:/Cache");
                    datasourceconnection.setDriver("WMTS");
                    datasourceconnection.setAlias("WMTS");
                
            // 其它情况
            default:
                break;
            }
    
            // 打开数据源
            Datasource datasource = workspace.getDatasources().open(datasourceconnection);
            if (datasource == null) {
                    System.out.println("打开数据源失败");
                    return;
            } else {
                    System.out.println("数据源打开成功!");
                    }
    
            // 释放工作空间资源
            datasourceconnection.dispose();
            workspace.dispose();
    
        }
     
    • 构造器详细资料

      • DatasourceConnectionInfo

        public DatasourceConnectionInfo()
        构造一个新的 DatasourceConnectionInfo 对象,默认的引擎类型为 UDB 引擎。
      • DatasourceConnectionInfo

        public DatasourceConnectionInfo(String tns,
                                        String database,
                                        String alias,
                                        String user,
                                        String password)
        根据指定的参数来构造一个 DatasourceConnectionInfo 的新对象。
        参数:
        tns - Oracle 客户端配置连接名。
        database - 数据库名称。
        alias - 数据源别名。
        user - 用户名。
        password - 密码。
      • DatasourceConnectionInfo

        public DatasourceConnectionInfo(String server,
                                        String driver,
                                        String database,
                                        String alias,
                                        String user,
                                        String password)
        根据指定的参数来构造一个 DatasourceConnectionInfo 的新对象。
        参数:
        server - 服务器名称或者 Web 数据源服务地址。
        driver - 当采用 ODBC 连接时的驱动程序名称。
        database - 数据库名称。
        alias - 数据源的别名。
        user - 用来登录数据库的用户名。
        password - 用来登录数据库的密码。
      • DatasourceConnectionInfo

        public DatasourceConnectionInfo(String file,
                                        String alias,
                                        String password)
        根据指定的参数来构造一个 DatasourceConnectionInfo 的新对象。
        参数:
        file - UDB 文件名。
        alias - 数据源别名。
        password - 密码。
    • 方法详细资料

      • getAlias

        public String getAlias()
        返回数据源别名。别名是数据源的唯一标识。该标识不区分大小写。
        返回:
        数据源别名。
        默认值:
        默认值为 "UntitledDatasource"。
      • setAlias

        public void setAlias(String value)
        设置数据源别名。别名是数据源的唯一标识。该标识不区分大小写。
        参数:
        value - 数据源别名。
      • getEngineType

        public EngineType getEngineType()
        返回数据源连接的引擎类型。目前提供的引擎类型包括 UDB 引擎(UDB)、Oracle 引擎(ORACLEPLUS)、 SQL 引擎(SQLPlus)、PostgreSQL 引擎(POSTGRESQL)和 DB2 引擎(DB2)等, 请参见 EngineType 类。
        返回:
        数据源连接的引擎类型。
        另请参阅:
        EngineType
        默认值:
        默认值为 UDB
      • setEngineType

        public void setEngineType(EngineType value)
        设置数据源连接的引擎类型。目前提供的引擎类型包括 UDB 引擎(UDB)、Oracle 引擎(ORACLEPLUS)、 SQL 引擎(SQLPlus)、PostgreSQL 引擎(POSTGRESQL)和 DB2 引擎(DB2)等, 请参见 EngineType 类。
        参数:
        value - 数据源连接的引擎类型。
        另请参阅:
        EngineType
      • getServer

        public String getServer()
        返回数据库服务器名、文件名或服务地址。
        1. 对于 UDB 文件,为其文件的绝对路径。注意:当绝对路径的长度超过 UTF-8 编码格式的260字节长度,该数据源无法打开。
        2. 对于 Oracle 数据库,其服务器名为其 TNS 服务名称;
        3. 对于 SQL Server 数据库,其服务器名为其系统的 DSN(Database Source Name)名称;
        4. 对于 PostgreSQL 数据库,其服务器名为"IP:端口号",默认的端口号是 5432;
        5. 对于 DB2 数据库,已经进行了编目,所以不需要进行服务器的设置;
        6. 对于 Kingbase 数据库,其服务器名为其 IP 地址;
        7. 对于 GoogleMaps 数据源,为其服务地址,默认设置为"http://maps.google.com",且不可更改;
        8. 对于 SuperMapCloud 数据源,为其服务地址;
        9. 对于 MAPWORLD 数据源,为其服务地址,默认设置为"http://www.tianditu.cn",且不可更改;
        10. 对于 OGC 和 REST 数据源,为其服务地址。
        返回:
        数据库服务器名或文件名。
        默认值:
        默认值为一个空字符串。
      • setServer

        public void setServer(String value)
        设置数据库服务器名、文件名或服务地址。
        1. 对于 UDBX 文件,输入文件的绝对路径。注意:不支持对跨操作系统的 UDBX 文件进行编辑,仅支持读取,例如:UDBX 存储于 windows 系统下的共享文件夹,此共享文件夹挂载在 Linux 系统下,使用 Linux 组件平台可读取此挂载的 UDBX,但不允许编辑。
        2. 对于 Oracle 数据库,其服务器名为其 TNS 服务名称;
        3. 对于 SQL Server 数据库,其服务器名为其系统的 DSN(Database Source Name)名称;
        4. 对于 PostgreSQL 数据库,其服务器名为"IP:端口号",默认的端口号是 5432;
        5. 对于 DB2 数据库,已经进行了编目,所以不需要进行服务器的设置;
        6. 对于 Kingbase 数据库,其服务器名为其 IP 地址;
        7. 对于 GoogleMaps 数据源,为其服务地址,默认设置为"http://maps.google.com",且不可更改;
        8. 对于 SuperMapCloud 数据源,为其服务地址;
        9. 对于 MAPWORLD 数据源,为其服务地址,默认设置为"http://www.tianditu.cn",且不可更改;
        10. 对于 OGC 和 REST 数据源,为其服务地址。若OGC WMTS服务中采用Basic方式的用户名密码验证,需要在URL中添加参数 AUTHORIZATION=Basic。

        若用户将 EngineType 设置为 IMAGEPLUGINS 时,将此方法的参数设置为地图缓存配置文件(SCI)名称,则用户可以实现对地图缓存的加载。

        参数:
        value - 数据库服务器名或文件名。
      • getDatabase

        public String getDatabase()
        返回数据源连接的数据库名。
        返回:
        数据源连接的数据库名。
        默认值:
        默认值为一个空字符串。

        对于 GoogleMaps、SuperMapCloud、REST 、 MapWorld 和 WMTS 网络服务数据源,为其本地缓存路径。如果本地缓存路径没有设置,则返回一个空字符串。

      • setDatabase

        public void setDatabase(String value)
        设置数据源连接的数据库名。对于数据库类型数据源适用。
        参数:
        value - 数据源连接的数据库名。

        对于 GoogleMaps、SuperMapCloud、REST 、 MapWorld 和 WMTS 网络服务数据源,为其本地缓存路径。如果不设置则为默认缓存路径。

      • getUser

        public String getUser()
        返回登录数据库的用户名。对于数据库类型数据源适用。
        返回:
        登录数据库的用户名。
        默认值:
        默认值为一个空字符串。
      • setUser

        public void setUser(String value)
        设置登录数据库的用户名。对于数据库类型数据源适用。
        参数:
        value - 登录数据库的用户名。
      • getPassword

        public String getPassword()
        返回登录数据源连接的数据库或文件的密码。

          对于 GoogleMaps 数据源,如果打开的是基于早期版本的数据源,则返回的密码为用户在 Google 官网注册后获取的密钥。

        返回:
        登录数据源连接的数据库或文件的密码。
        默认值:
        默认值为一个空字符串。
      • setPassword

        public void setPassword(String value)
        设置登录数据源连接的数据库或文件的密码。

          对于 GoogleMaps 数据源,如果打开的是基于早期版本的数据源,则需要输入密码,其密码为用户在 Google 官网注册后获取的密钥。

        参数:
        value - 登录数据源连接的数据库或文件的密码。
      • getDriver

        public String getDriver()
        返回数据源连接所需的驱动名称。

        对于SQL Server 数据库,它使用 ODBC 连接,返回的驱动程序名为 SQL Server 或 SQL Native Client。

        对于 iServer 发布的 WMTS 服务,返回的驱动名称为 WMTS。

        返回:
        数据源连接所需的驱动名称。
        默认值:
        默认值为一个空字符串。
      • setDriver

        public void setDriver(String value)
        设置数据源连接所需的驱动名称。

        对于SQL Server 数据库,它使用 ODBC 连接,所设置的驱动程序名为 SQL Server 或 SQL Native Client。

        对于 iServer 发布的 WMTS 服务,设置的驱动名称为 WMTS,并且该方法必须调用该方法设置其驱动名称。

        参数:
        value - 数据源连接所需的驱动名称。
      • isReadOnly

        public boolean isReadOnly()
        返回是否以只读方式打开数据源。如果以只读方式打开数据源,数据源的相关信息以及其中的数据都不可修改。
        返回:
        是否以只读方式打开数据源,如果以只读方式打开数据源为 true,否则为 false。
        默认值:
        默认值为 false。
      • setReadOnly

        public void setReadOnly(boolean value)
        设置是否以只读方式打开数据源。如果以只读方式打开数据源,数据源的相关信息以及其中的数据都不可修改。

        对于 UDB 数据源,如果其文件属性为只读的,那么必须将 DatasourceConnectionInfo.setReadOnly() 方法的参数设置为 true,才能打开数据源。

        参数:
        value - 指定是否以只读方式打开数据源。
      • isAutoConnect

        public boolean isAutoConnect()
        返回数据源是否自动连接数据。
        返回:
        一个布尔值,如果数据源自动连接数据,返回 true;否则返回 false。
        默认值:
        默认值为 true。
      • setAutoConnect

        public void setAutoConnect(boolean value)
        设置数据源是否自动连接数据。若该方法的参数设置为 true,则在打开工作空间时,数据源自动连接到数据。
        参数:
        value - 一个布尔指定数据源是否自动连接数据。
      • isOpenLinkTable

        public boolean isOpenLinkTable()
        返回一个布尔值指定是否把数据库中的其他非 SuperMap 数据表作为 LinkTable 打开。默认值为 false,即不作为 LinkTable 表打开。

        LinkTable 是只读的,并且不是通过创建的方式得到。

        返回:
        是否把数据库中的其他非 SuperMap 数据表作为 LinkTable 打开。
        默认值:
        默认值为 false。
      • setOpenLinkTable

        public void setOpenLinkTable(boolean value)
        已过时。 设置一个布尔值指定是否把数据库中的其他非 SuperMap 数据表作为 LinkTable 打开。
        参数:
        value - 是否把数据库中的其他非 SuperMap 数据表作为 LinkTable 打开。true 代表作为 LinkTable 打开。
      • fromXML

        public boolean fromXML(String xml)
        将指定 XML 字符串所表示的数据源的连接信息导入到当前的数据源连接信息对象中。调用该方法后,XML 字符串表示的数据源连接信息将覆盖当前数据源连接信息对象中的所有原有信息。
        参数:
        xml - 导入的数据源的连接信息的 xml 字符串。
        返回:
        如果导入成功,返回 true;否则返回 false。
      • toXML

        public String toXML()
        将把当前数据源连接信息对象输出为 XML 字符串。
        返回:
        由当前数据源连接信息对象转换而得到的 XML 字符串。
      • dispose

        public void dispose()
        释放该对象所占用的资源。当调用该方法之后,此对象不再可用。

        该方法仅限于 DatasourceConnectionInfo 的新建对象,对于从数据源对象中返回的数据源连接信息对象不可用。

      • saveAsDCF

        public boolean saveAsDCF(String strPath)
        将当前数据源连接信息对象保存为加密的DCF文件。
        参数:
        strPath - 保存为加密的DCF文件路径。
        返回:
        成功返回true,否则返回false。
      • loadFromDCF

        public boolean loadFromDCF(String strPath)
        将指定加密的DCF文件所表示的数据源连接信息载入当前数据源连接信息对象中。
        参数:
        strPath - 指定加密的DCF文件的路径。
        返回:
        成功返回true,否则返回false。
      • toString

        public String toString()
        将当前当前数据源连接信息对象输出为字符串。
        覆盖:
        toString 在类中 Object
        返回:
        表示当前数据源连接信息对象的字符串。
      • getMaxConnPoolNum

        public int getMaxConnPoolNum()
        获取当前数据源的最大连接数。
        返回:
        返回最大连接数。
      • setMaxConnPoolNum

        public void setMaxConnPoolNum(int value)
        设置当前数据源的最大连接数。
        参数:
        value - 连接数。

Copyright © 2021–2024 SuperMap. All rights reserved.