com.supermap.data
类 DatasourceConnectionInfo

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

public class DatasourceConnectionInfo
extends java.lang.Object

数据源连接信息类。

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

对于从数据源对象中返回的数据源连接信息对象,只有 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()
          构造一个新的 DatasourceConnectionInfo 对象,默认的引擎类型为 UDB 引擎。
DatasourceConnectionInfo(java.lang.String file, java.lang.String alias, java.lang.String password)
          根据指定的参数来构造一个 DatasourceConnectionInfo 的新对象。
DatasourceConnectionInfo(java.lang.String tns, java.lang.String database, java.lang.String alias, java.lang.String user, java.lang.String password)
          根据指定的参数来构造一个 DatasourceConnectionInfo 的新对象。
DatasourceConnectionInfo(java.lang.String server, java.lang.String driver, java.lang.String database, java.lang.String alias, java.lang.String user, java.lang.String password)
          根据指定的参数来构造一个 DatasourceConnectionInfo 的新对象。
 
方法摘要
 void dispose()
          释放该对象所占用的资源。
 boolean fromXML(java.lang.String xml)
          将指定 XML 字符串所表示的数据源的连接信息导入到当前的数据源连接信息对象中。
 java.lang.String getAlias()
          返回数据源别名。
 java.lang.String getDatabase()
          返回数据源连接的数据库名。
 java.lang.String getDriver()
          返回数据源连接所需的驱动名称。
 EngineType getEngineType()
          返回数据源连接的引擎类型。
 java.lang.String getPassword()
          返回登录数据源连接的数据库或文件的密码。
 java.lang.String getServer()
          返回数据库服务器名、文件名或服务地址。
 java.lang.String getUser()
          返回登录数据库的用户名。
 boolean isAutoConnect()
          返回数据源是否自动连接数据。
 boolean isOpenLinkTable()
          返回一个布尔值指定是否把数据库中的其他非 SuperMap 数据表作为 LinkTable 打开。
 boolean isReadOnly()
          返回是否以只读方式打开数据源。
 boolean loadFromDCF(java.lang.String strPath)
          将指定加密的DCF文件所表示的数据源连接信息载入当前数据源连接信息对象中。
 boolean saveAsDCF(java.lang.String strPath)
          将当前数据源连接信息对象保存为加密的DCF文件。
 void setAlias(java.lang.String value)
          设置数据源别名。
 void setAutoConnect(boolean value)
          设置数据源是否自动连接数据。
 void setDatabase(java.lang.String value)
          设置数据源连接的数据库名。
 void setDriver(java.lang.String value)
          设置数据源连接所需的驱动名称。
 void setEngineType(EngineType value)
          设置数据源连接的引擎类型。
 void setOpenLinkTable(boolean value)
          已过时。 设置一个布尔值指定是否把数据库中的其他非 SuperMap 数据表作为 LinkTable 打开。
 void setPassword(java.lang.String value)
          设置登录数据源连接的数据库或文件的密码。
 void setReadOnly(boolean value)
          设置是否以只读方式打开数据源。
 void setServer(java.lang.String value)
          设置数据库服务器名、文件名或服务地址。
 void setUser(java.lang.String value)
          设置登录数据库的用户名。
 java.lang.String toString()
          将当前当前数据源连接信息对象输出为字符串。
 java.lang.String toXML()
          将把当前数据源连接信息对象输出为 XML 字符串。
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

DatasourceConnectionInfo

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


DatasourceConnectionInfo

public DatasourceConnectionInfo(java.lang.String tns,
                                java.lang.String database,
                                java.lang.String alias,
                                java.lang.String user,
                                java.lang.String password)
根据指定的参数来构造一个 DatasourceConnectionInfo 的新对象。

参数:
tns - Oracle 客户端配置连接名。
database - 数据库名称。
alias - 数据源别名。
user - 用户名。
password - 密码。

DatasourceConnectionInfo

public DatasourceConnectionInfo(java.lang.String server,
                                java.lang.String driver,
                                java.lang.String database,
                                java.lang.String alias,
                                java.lang.String user,
                                java.lang.String password)
根据指定的参数来构造一个 DatasourceConnectionInfo 的新对象。

参数:
server - 服务器名称或者 Web 数据源服务地址。
driver - 当采用 ODBC 连接时的驱动程序名称。
database - 数据库名称。
alias - 数据源的别名。
user - 用来登录数据库的用户名。
password - 用来登录数据库的密码。

DatasourceConnectionInfo

public DatasourceConnectionInfo(java.lang.String file,
                                java.lang.String alias,
                                java.lang.String password)
根据指定的参数来构造一个 DatasourceConnectionInfo 的新对象。

参数:
file - UDB 文件名。
alias - 数据源别名。
password - 密码。
方法详细信息

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 打开。

getAlias

public java.lang.String getAlias()
返回数据源别名。别名是数据源的唯一标识。该标识不区分大小写。

返回:
数据源别名。
默认值:
默认值为 "UntitledDatasource"。

setAlias

public void setAlias(java.lang.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 java.lang.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(java.lang.String value)
设置数据库服务器名、文件名或服务地址。
  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 数据源,为其服务地址。若OGC WMTS服务中采用Basic方式的用户名密码验证,需要在URL中添加参数 AUTHORIZATION=Basic。

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

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

getDatabase

public java.lang.String getDatabase()
返回数据源连接的数据库名。

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

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


setDatabase

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

参数:
value - 数据源连接的数据库名。

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


getUser

public java.lang.String getUser()
返回登录数据库的用户名。对于数据库类型数据源适用。

返回:
登录数据库的用户名。
默认值:
默认值为一个空字符串。

setUser

public void setUser(java.lang.String value)
设置登录数据库的用户名。对于数据库类型数据源适用。

参数:
value - 登录数据库的用户名。

getPassword

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

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

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

setPassword

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

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

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

getDriver

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

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

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

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

setDriver

public void setDriver(java.lang.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 - 一个布尔指定数据源是否自动连接数据。

fromXML

public boolean fromXML(java.lang.String xml)
将指定 XML 字符串所表示的数据源的连接信息导入到当前的数据源连接信息对象中。调用该方法后,XML 字符串表示的数据源连接信息将覆盖当前数据源连接信息对象中的所有原有信息。

参数:
xml - 导入的数据源的连接信息的 xml 字符串。
返回:
如果导入成功,返回 true;否则返回 false。

toXML

public java.lang.String toXML()
将把当前数据源连接信息对象输出为 XML 字符串。

返回:
由当前数据源连接信息对象转换而得到的 XML 字符串。

dispose

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

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


saveAsDCF

public boolean saveAsDCF(java.lang.String strPath)
将当前数据源连接信息对象保存为加密的DCF文件。

参数:
strPath - 保存为加密的DCF文件路径。
返回:
成功返回true,否则返回false。

loadFromDCF

public boolean loadFromDCF(java.lang.String strPath)
将指定加密的DCF文件所表示的数据源连接信息载入当前数据源连接信息对象中。

参数:
strPath - 指定加密的DCF文件的路径。
返回:
成功返回true,否则返回false。

toString

public java.lang.String toString()
将当前当前数据源连接信息对象输出为字符串。

覆盖:
java.lang.Object 中的 toString
返回:
表示当前数据源连接信息对象的字符串。