(本文档仅供参考)
使用场景
此jsp源代码调用的是jdbc驱动实现的标准的PreparedStatement接口的executeBatch()方法执行多条SQL,未走smartbi产品内部的代码逻辑,执行的SQL语句必须是一个 SQL 数据操作语言(Data Manipulation Language,DML)语句,比如 INSERT、UPDATE 或 DELETE 语句;或者是无返回内容的 SQL 语句,比如 DDL 语句。主要测试场景如下:
1、回写-勾选批量(插入、删除、更新);
2、excel导入模板开启批量的执行(插入、更新);
注:此jsp调用的是驱动通用接口,而产品层面对部分数据库有进行优化对应的逻辑,故某些情况下,驱动返回的速度可能会更慢。
操作步骤
(图片解释与调用单条SQL的wiki类似,此处不再描述,见java调用jdbc驱动测试-单条insert、update和delete语句)
1、获取执行SQL
2、修改SQL语句
回写语句中,是需要手动将问号转化为对应的数据,根据数据类型判断是否需要加引号
3、下载jsp文件放到vision文件夹
下载testjdbcbatch.jsp,并将testjdbcbatch.jsp文件放到Smartbi的vision文件夹下,不需要重启应用服务器。
4、访问jsp页面执行数据库语句
浏览器访问 http://IP:PORT/smartbi/vision/testjdbcbatch.jsp,在页面上填写待测试的数据库信息。
注:IP和PORT需根据实际地址进行修改。
如果是动态驱动则需要设置驱动类目录,获取步骤见wiki文档(Java调用jdbc驱动测试)中的步骤1。
5、提交并查看测试结果
5.1、批量多条SQL可以用分号隔开
5.2、增删改都能执行
5.2、代表每条sql执行后影响的行数
补充说明
其实产品执行的批量是带问号的批量,是把增删改作为三个带问号的sql,然后每个sql可以设置多次参数,实现通过一个问号的sql执行多次增删改。
但是此jsp执行的sql不支持带问号,不支持执行sql设置不同参数执行多次,所以是需要手动将问号转化为对应的数据。