类 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()
构造一个新的 DatasourceConnectionInfo 对象,默认的引擎类型为 UDB 引擎。DatasourceConnectionInfo(String file, String alias, String password)
根据指定的参数来构造一个 DatasourceConnectionInfo 的新对象。DatasourceConnectionInfo(String tns, String database, String alias, String user, String password)
根据指定的参数来构造一个 DatasourceConnectionInfo 的新对象。DatasourceConnectionInfo(String server, String driver, String database, String alias, String user, String password)
根据指定的参数来构造一个 DatasourceConnectionInfo 的新对象。
-
方法概要
所有方法 静态方法 实例方法 具体方法 已过时的方法 限定符和类型 方法和说明 void
dispose()
释放该对象所占用的资源。boolean
fromXML(String xml)
将指定 XML 字符串所表示的数据源的连接信息导入到当前的数据源连接信息对象中。String
getAlias()
返回数据源别名。String
getDatabase()
返回数据源连接的数据库名。String
getDriver()
返回数据源连接所需的驱动名称。EngineType
getEngineType()
返回数据源连接的引擎类型。Map<String,String>
getExtendAttribute()
获取数据源连接信息中已设置的扩展属性信息。int
getMaxConnPoolNum()
获取当前数据源的最大连接数。String
getPassword()
返回登录数据源连接的数据库或文件的密码。String
getServer()
返回数据库服务器名、文件名或服务地址。String
getUser()
返回登录数据库的用户名。boolean
isAutoConnect()
返回数据源是否自动连接数据。boolean
isOpenLinkTable()
返回一个布尔值指定是否把数据库中的其他非 SuperMap 数据表作为 LinkTable 打开。boolean
isReadOnly()
返回是否以只读方式打开数据源。boolean
loadFromDCF(String strPath)
将指定加密的DCF文件所表示的数据源连接信息载入当前数据源连接信息对象中。static DatasourceConnectionInfo
makeInstanceFormHandle(long handle)
根据指定的 handle 构建一个DatasourceConnectionInfo
对象。boolean
saveAsDCF(String strPath)
将当前数据源连接信息对象保存为加密的DCF文件。void
setAlias(String value)
设置数据源别名。void
setAutoConnect(boolean value)
设置数据源是否自动连接数据。void
setDatabase(String value)
设置数据源连接的数据库名。void
setDriver(String value)
设置数据源连接所需的驱动名称。void
setEngineType(EngineType value)
设置数据源连接的引擎类型。void
setExtendAttribute(Map<String,String> exAttribute)
设置数据源连接时的扩展属性信息。void
setMaxConnPoolNum(int value)
设置当前数据源的最大连接数。void
setOpenLinkTable(boolean value)
已过时。设置一个布尔值指定是否把数据库中的其他非 SuperMap 数据表作为 LinkTable 打开。void
setPassword(String value)
设置登录数据源连接的数据库或文件的密码。void
setReadOnly(boolean value)
设置是否以只读方式打开数据源。void
setServer(String value)
设置数据库服务器名、文件名或服务地址。void
setUser(String value)
设置登录数据库的用户名。String
toString()
将当前当前数据源连接信息对象输出为字符串。String
toXML()
将把当前数据源连接信息对象输出为 XML 字符串。
-
-
-
构造器详细资料
-
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
- 用来登录数据库的密码。
-
-
方法详细资料
-
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()
返回数据库服务器名、文件名或服务地址。- 对于 UDB 文件,为其文件的绝对路径。注意:当绝对路径的长度超过 UTF-8 编码格式的260字节长度,该数据源无法打开。
- 对于 Oracle 数据库,其服务器名为其 TNS 服务名称;
- 对于 SQL Server 数据库,其服务器名为其系统的 DSN(Database Source Name)名称;
- 对于 PostgreSQL 数据库,其服务器名为"IP:端口号",默认的端口号是 5432;
- 对于 DB2 数据库,已经进行了编目,所以不需要进行服务器的设置;
- 对于 Kingbase 数据库,其服务器名为其 IP 地址;
- 对于 GoogleMaps 数据源,为其服务地址,默认设置为"http://maps.google.com",且不可更改;
- 对于 SuperMapCloud 数据源,为其服务地址;
- 对于 MAPWORLD 数据源,为其服务地址,默认设置为"http://www.tianditu.cn",且不可更改;
- 对于 OGC 和 REST 数据源,为其服务地址。
- 返回:
- 数据库服务器名或文件名。
- 默认值:
- 默认值为一个空字符串。
-
setServer
public void setServer(String value)
设置数据库服务器名、文件名或服务地址。- 对于 UDBX 文件,输入文件的绝对路径。注意:不支持对跨操作系统的 UDBX 文件进行编辑,仅支持读取,例如:UDBX 存储于 windows 系统下的共享文件夹,此共享文件夹挂载在 Linux 系统下,使用 Linux 组件平台可读取此挂载的 UDBX,但不允许编辑。
- 对于 Oracle 数据库,其服务器名为其 TNS 服务名称;
- 对于 SQL Server 数据库,其服务器名为其系统的 DSN(Database Source Name)名称;
- 对于 PostgreSQL 数据库,其服务器名为"IP:端口号",默认的端口号是 5432;
- 对于 DB2 数据库,已经进行了编目,所以不需要进行服务器的设置;
- 对于 Kingbase 数据库,其服务器名为其 IP 地址;
- 对于 GoogleMaps 数据源,为其服务地址,默认设置为"http://maps.google.com",且不可更改;
- 对于 SuperMapCloud 数据源,为其服务地址;
- 对于 MAPWORLD 数据源,为其服务地址,默认设置为"http://www.tianditu.cn",且不可更改;
- 对于 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()
将当前当前数据源连接信息对象输出为字符串。
-
makeInstanceFormHandle
public static DatasourceConnectionInfo makeInstanceFormHandle(long handle)
根据指定的 handle 构建一个DatasourceConnectionInfo
对象。- 参数:
handle
- 指定的 handle 地址。- 返回:
- 一个
DatasourceConnectionInfo
对象。
-
getMaxConnPoolNum
public int getMaxConnPoolNum()
获取当前数据源的最大连接数。- 返回:
- 返回最大连接数。
-
setMaxConnPoolNum
public void setMaxConnPoolNum(int value)
设置当前数据源的最大连接数。- 参数:
value
- 连接数。
-
getExtendAttribute
public Map<String,String> getExtendAttribute()
获取数据源连接信息中已设置的扩展属性信息。- 返回:
- 扩展属性信息,第一个string为参数名,第二个string为参数值。参考
DatasourceConnectionInfo.setExtendAttribute(Map)
-
setExtendAttribute
public void setExtendAttribute(Map<String,String> exAttribute)
设置数据源连接时的扩展属性信息。- 参数:
exAttribute
- 扩展属性信息。当连接矢量文件时,可通过Toolkit.getExtendAttributeList(EngineType)
获取可以设置的扩展属性信息列表。Map中第一个string为参数名,第二个string为参数值,例如:打开 DWG 文件时设置导入为简单数据集,设置参数 exAttribute.put("ImportMode", "1")
。- 另请参阅:
ExtendAttributeInfo
,Toolkit.getVectorExtendAttributeList(FileFormat)
-
-
Copyright © 2021–2024 SuperMap. All rights reserved.