关系数据源连接是指通过“数据库驱动程序”连接一个本地或远程的关系数据库。
操作入口
1、选择系统导航栏的 数据连接,或者选择系统快捷菜单 数据连接 ,如图:
2、在“数据连接”界面主菜单选择 关系数据库 下的关系数据源 ,如图:
界面介绍
我们在新建关系数据源或是打开数据源,可以看到下面如图的连接信息。
配置说明
各配置项说明如下:
在“关系数据源管理”界面进行关系数据源连接配置项的设置,如下表:
配置项 | 说明 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
名称 | 新建的数据源的标示名,必须唯一。 | |||||||||||||
别名 | 新建的数据源显示的名称。 | |||||||||||||
驱动程序类型 | 用户选择连接的数据库的类型。 关于支持的关系数据库类型,详情请参考 系统环境要求。 其中:
| |||||||||||||
驱动程序存放目录 | 驱动程序存放目录分为“产品内置”和“自定义”。默认为“产品内置”。 驱动包使用的优先级逻辑如下: 1)不选驱动程序存放目录/驱动程序存放目录选择“产品内置”:系统自动从“产品内置”去寻找驱动。 2)驱动程序存放目录选择“自定义”,没指定“自定义目录”:系统默认先去“自定义”寻找驱动,找不到再去“产品内置”寻找驱动。 3)驱动程序存放目录选择“自定义”,并指定“自定义目录”:系统默认先去“自定义目录”寻找驱动,找不到再去“自定义”寻找驱动,再找不到再去“产品内置”寻找驱动。 其中,各目录路径如下:
| |||||||||||||
驱动程序类 | 用户选择好连接的数据库的类型的后,系统自动生成驱动程序类。 | |||||||||||||
连接字符串 | 用户选择好连接的数据库的类型后,系统自动生成相应的连接字符串,用户需要把其中的“<servername>”和“<database>”分别换成连接数据源所在的服务器和数据库的名称。 | |||||||||||||
| 用于设置用户名和密码的验证类型,包含两种静态和动态。具体说明参考 |
| 用于设置用户名和密码的验证类型,包含两种静态和动态。 静态:输入连接数据库的用户名和密码。 动态:如要用于连接的用户名和密码是根据登录的用户而动态变化。比如Oracle数据库,不同的用户名对数据库的表的权限是不一样的。选择动态的验证类型,需要从左侧资源树下拖拽“系统函数”或是“用户属性”来作为表达式,实现不同的用户登录设置连接数据库的用户名和密码是动态变化的。 | |||||||||||
用户名 | 用户登录所选数据库的用户名。 | |||||||||||||
密码 | 用户登录所选数据库的密码。 | |||||||||||||
高级 | 数据库源字符集 | 选择与数据库对应的字符集。一般情况下不需要设置。具体参见字符集。 | ||||||||||||
数据库目标字符集 | 设置为与数据库对应的字符集。一般情况下不需要设置。具体参见字符集。 | |||||||||||||
最大连接数 | 新建的数据源允许同时登录的最多用户数。数据源允许同时登录的最多用户数。 | |||||||||||||
校验语句 | 数据源连接进行校验的SQL语句。包含下面几种方式,默认为获取连接时测试。
| |||||||||||||
事务隔离级别 | 事务隔离级别用于保证并发读取数据的正确性,下面列出各种事务的隔离级别说明,默认选择为JDBC默认值。需注意的是在选择下面事务级别时,需保证所选择的数据库本身是支持的。
| |||||||||||||
引用标识符 | 表示是否在表名、字段名外添加一个引号。主要用于一些库中的表可能有特殊符号,不添加引号可能会出错。 | |||||||||||||
描述 | 添加数据源的备注信息。 |
设置好数据源连接的配置项后,必须要先进行 测试连接 操作,只有在测试连接通过后才允许保存填写完。
关系数据源连接成功后,即在资源目录的“数据源”节点下显示出该关系数据源的内容。如下图:
关系数据源连接成功后,即在资源目录区的“数据源”节点下显示出该关系数据源的内容。如下图:
锚 | ||||
---|---|---|---|---|
|
驱动程序类型是指用户选择连接的数据库的类型。系统支持连接的关系数据库类型有:ODBC数据源和JDBC数据源。
ODBC驱动程序类型包含:Access、Excel、ODBC
ODBC驱动程序类型数据源连接示例参见关系数据源-连接access数据库
JDBC驱动程序类型包含:Ms SQL Server、MySQL、Oracle、DB2_400、DB2、DB2 V9、Informix、Sybase、
Teradata、Teradata_v12、PostgreSQL、Greenplum、Kingbase
JDBC驱动程序类型数据源连接示例参见连接MySQL数据源。
注意:
- 当我们选择JDBC驱动程序类型时,需要保证在产品中包含数据库对应的JDBC驱动程序。
- 产品默认会包含一些数据库的JDBC驱动,但是对于有的数据库比如Oracle数据库不同版本的JDBC驱动是不兼容的,因此需要手动的把数据库本身的JDBC驱动添加到产品的WEB-INF\lib目录下。
驱动程序类型是指用户选择连接的数据库的类型。
为了便于检查数据源连接方面的问题,下面列出各个关系数据库对应的JDBC驱动的jar文件名:
数据库名称 | Jar包名称 | 备注 | |
---|---|---|---|
SQL Server | sqljdbc.jar | SQL Server 2005 | |
msbase.jar | SQL Server 2000 | ||
mssqlserver.jar | |||
msutil.jar | |||
MySQL | mysql.jar |
| |
Oracle | Classes12.zip | Oracle9i | |
classes12.jar | Oracle10g | ||
Db2 | db2java.zip |
| |
db2jcc.jar |
| ||
db2jcc_license_cu.jar |
| ||
sybase | jconn2d.jar | ||
Kingbase | kingbasejdbc4.jar |
| |
informix | ifxjdbc.jar | ||
NCR Teradata | teradata.jar | Ncr 2.5 | |
terajdbc4.jar | Ncr 2.5/2.6 | ||
tdgssjava.jar | Ncr 2.6 | ||
PostgreSQL | postgresql.jar | ||
Greenplum | postgresql.jar |
|
用于设置数据库连接时的用户名和密码。主要包含静态和动态两种。
静态:输入连接数据库的用户名和密码。
动态:如要用于连接的用户名和密码是根据登录的用户而动态变化。比如Oracle数据库,不同的用户名对数据库的表的权限是不一样的。
我们可以在连接数据源的时候,选择动态的验证类型,然后从左侧资源树下拖拽系统函数或是用户属性来作为表达式,实现不同的用户登录设置连接数据库的用户名和密码是动态变化的。
示例
动态验证类型通常有如下两种适用情况:
适用情况描述 | 设置方法 | 效果 |
---|---|---|
当数据库用户与smartbi用户是完全同步:名称和密码都完全一致。 我们只需要通过系统函数“CurrentUserName()” | 通过测试连接:
| |
若数据库用户与smartbi用户未完全同步,则可以通过以下方式实现动态: 1、结合系统函数定义用户属性来获取当前用户名称; 2、结合系统函数定义用户属性,根据当前用户在用户表中获取密码; | 1、创建数据源连接,连接用户表所在的数据库: 2、基于该数据源定义获取用户名称的用户属性: 3、基于该数据源定义获取密码的用户属性: 4、利用以上用户和密码的用户属性实现动态数据源连接设置: | 通过测试连接: |
锚 | ||||
---|---|---|---|---|
|
目前在进行数据源设置的时候可以指定数据库源字符集和数据库目标字符集。一般情况下不需要设置,只有在数据库展示出现乱码的时候,才有可能需要对这些数据集进行设置。
- 数据源字符集:在获取数据库数据时,指定数据库的字符集。一般为数据库的字符集。
- 数据源目录字符集:在展示数据时,指定展示时的字符集。一般为服务器的字符集。
参考示例
- 数据源目录字符集:当出现乱码时,目标字符集和数据库本身的编码组合测试,直到找不到不乱码的组合。