Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: 从版本13恢复

关系数据源连接是指通过“数据库驱动程序”连接一个本地或远程的关系数据库。

操作入口

在 定制管理> 数据管理>数据源 节点下右键选择新建关系数据源,或是在定制管理快捷按钮选择 数据源连接,则打开数据源连接窗口。

Panel
borderColor#BBBBBB
bgColor#F0F0F0
borderWidth1
borderStylesolid
 文档目录:

Table of Contents

我们在新建关系数据源或是打开数据源,可以看到下面如图的连接信息。

配置说明

在“关系数据源管理”界面进行关系数据源连接配置项的设置,如下表:

配置项

说明

名称

新建的数据源的标示名,必须唯一。

别名

新建的数据源显示的名称。

驱动程序类型

用户选择连接的数据库的类型。系统支持连接的关系数据库类型有:ODBC数据源和JDBC数据源。

JDBC驱动程序类型:

Access、aliyun AnalyticDB、CH、DB2 V9、Excel、Gbase、Gbase 8t、Greenplum、H2、Hadoop_Hive、Hadoop_Hive_v1、HANA、IMPALA 、infobright、Informix、Kingbase、KingbaseAnalytics、Kylin、Ms SQL Server、MySQL、ODBC、Oracle、Oracle TimesTen、PostgreSQL、Presto、ShenTong、Smartbi jdbc for Excel、Spark SQL、Sybase、Teradata_v12、Teradata_v13及其以上、Vertica、星环、达梦

开启示例数据:勾选后使用该数据源创建的资源都可以随机生成示例数据。

Note

注意:产品默认不开启“开启示例数据”功能,需要部署扩展包才能使用。步骤如下:

1)通过百度网盘下载扩展包:

链接:https://pan.baidu.com/s/1hrkBOWalrBYrdu9X3uFvPA       提取码:ucfu

2)在产品中部署下载的扩展包,部署方法可参考 扩展包部署 。

驱动程序类

用户选择好连接的数据库的类型的后,系统自动生成驱动程序类。

连接字符串

用户选择好连接的数据库的类型后,系统自动生成相应的连接字符串,用户需要把其中的“<servername>”和“<database>”分别换成连接数据源所在的服务器和数据库的名称。

验证类型

用于设置用户名和密码的验证类型,包含两种静态和动态。具体说明参考验证类型

用户名

用户登录所选数据库的用户名。

密码

用户登录所选数据库的密码。

数据库源字符集

选择与数据库对应的字符集。一般情况下不需要设置。具体参见字符集

数据库目标字符集

设置为与数据库对应的字符集。一般情况下不需要设置。具体参见字符集

最大连接数

新建的数据源允许同时登录的最多用户数。

校验语句

数据源连接进行校验的SQL语句。包含下面几种方式,默认为获取连接时测试。

  • 获取连接时测试:获取连接池时进行SQL语句测试,每一次查询的时候,都会从连接池拿到一个空闲连接,先执行配置的校验语句去执行,判断这个连接是否可用,若不可用则会重新获取一个连接。如果没有配置校验语句,有可能会出现使用已经失效的连接去执行sql语句然后报出数据库驱动相关的报错。
  • 返还时测试:返还连接池时进行SQL语句测试,顾名思义,当执行完查询后,将连接返还给连接池时去执行校验语句,判断这个连接是否可用。
  • 获取、返还时测试:获取、返还连接池时都要进行SQL语句测试,执行以上两个步骤。
  • 返还时关闭连接:返还时关闭连接池,每一次查询的时候,都会新建一个数据库连接,查询完毕后,会关闭这个连接,同时提交事务,会对性能有一定影响。
  • 不测试连接:不进行SQL语句连接,执行查询时,不进行测试连接是否可用。
    通常用的是获取连接时测试,特殊情况下会用返还时关闭连接,其它几种基本上用不到。

事务隔离级别

事务隔离级别用于保证并发读取数据的正确性,下面列出各种事务的隔离级别说明,默认选择为JDBC默认值。需注意的是在选择下面事务级别时,需保证所选择的数据库本身是支持的。

  • JDBC默认值:使用JDBC的处理方式。
  • 关闭事务:在不启用事务的情况下执行查询
  • 脏数据读:允许读取其它事务正在更新的数据,减少锁表
  • 防止脏数据读:如果读取的数据被锁定时,会等待
  • 可重复读:数据数据时会锁定数据避免其它事务更新
  • 串行:事务逐一执行
引用标识符表示是否在表名、字段名外添加一个引号。主要用于一些库中的表可能有特殊符号,不添加引号可能会出错。

描述

添加数据源的备注信息。

设置好数据源连接的配置项后,必须要先进行  测试连接 操作,只有在测试连接通过后才允许保存填写完。

关系数据源连接成功后,即在资源目录的“数据源”节点下显示出该关系数据源的内容。如下图:

       

Anchor
驱动程序类型
驱动程序类型
驱动程序类型

驱动程序类型是指用户选择连接的数据库的类型。系统支持连接的关系数据库类型有:ODBC数据源和JDBC数据源。

ODBC驱动程序类型包含:Access、Excel、ODBC

注:V8.5.6及之后版本不支持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

 

Anchor
验证类型
验证类型
验证类型

用于设置数据库连接时的用户名和密码。主要包含静态和动态两种。

静态:输入连接数据库的用户名和密码。

 

 

动态:如要用于连接的用户名和密码是根据登录的用户而动态变化。比如Oracle数据库,不同的用户名对数据库的表的权限是不一样的。

我们可以在连接数据源的时候,选择动态的验证类型,然后从左侧资源树下拖拽系统函数或是用户属性来作为表达式,实现不同的用户登录设置连接数据库的用户名和密码是动态变化的。

 

示例

动态验证类型通常有如下两种适用情况:

适用情况描述设置方法效果
当数据库用户与smartbi用户是完全同步:名称和密码都完全一致。
我们只需要通过系统函数“CurrentUserName()”
 Image Modified

通过测试连接:

 Image Modified

若数据库用户与smartbi用户未完全同步,则可以通过以下方式实现动态:

1、结合系统函数定义用户属性来获取当前用户名称;

2、结合系统函数定义用户属性,根据当前用户在用户表中获取密码;

1、创建数据源连接,连接用户表所在的数据库:

Image Modified

2、基于该数据源定义获取用户名称的用户属性:

Image Modified

3、基于该数据源定义获取密码的用户属性:

Image Modified

4、利用以上用户和密码的用户属性实现动态数据源连接设置:

Image Modified

 通过测试连接:

Image Modified

  

Anchor
字符集
字符集
字符集

目前在进行数据源设置的时候可以指定数据库源字符集和数据库目标字符集。一般情况下不需要设置,只有在数据库展示出现乱码的时候,才有可能需要对这些数据集进行设置。

  • 数据源字符集:在获取数据库数据时,指定数据库的字符集。一般为数据库的字符集。
  • 数据源目标字符集:当出现乱码时,目标字符集和数据库本身的编码组合测试,直到找不到不乱码的组合。

参考示例

Children Display
page数据源-示例
first9