# 1 DataInside脚本语法说明

1、关键字、函数、参数等必须为小写。比如log_into_db、execute、set_db_by_name等

2、字符串必须以””包括起来,且关键字与字符串中间必须用户括号包括起来。比如:log_into_db("查询表数据"),其中log_into_db为关键字,” 查询表数据”为字符串。

3、SQL语句必须使用关键字execute(“……”)或execute(""“……”"")包括起来。也可以接收自定义变量和日期函数

例:

int  c = 1;  /*自定义变量*/ 
execute  (“select  Id, Name,  ‘{today()}’ DAY  from  User where ID=${c}  “);  
1
2

注:一个execute(“”)中只能执行一个SQL语句

4、每一个代码块必须以分号结束。如for循环和execute结束

例:

for  (int i = 0 ; i <10; i++ )  
{       
	log_into_db("${i}");  
};  
execute(" select * from user ");  
1
2
3
4
5

5、日期函数及自定义变量使用注意事项,日期函数在使用时需使用{}将日期函数包括起来,自定义变量需使用${}把变量名包含起来

例:

日期函数: today()

log_into_db("{today()}");  
1

自定义变量

int  C = 1; 
log_into_db("${C}"); /*自定义变量区分大小写*/ 
1
2

6、当函数带有多个参数时,则每个参数间必须以英文状态的逗号隔开。

例:

主机函数

getCpu("root","root","127.0.0.1");  
1

7、注释:支持单行和多行,单行以#号注释,多行以/**/进行注释

例:

单行:#

# log_into_db("单行注释"); 
1

多行:/**/

/*for  (int i = 0 ; i <10; i++ )
  {       
  	Boolean aac =  log_into_db("${i}");    
    log_into_db("${aac}"); 
 };   */  
1
2
3
4
5

# 2 DataInside脚本函数

# 2.1 SQL查询函数

execute()

用途:执行sql无返回;

示例:更新表字段

execute ("      UPDATE TBALE_NAME SET A_COLUMN=10  ");  
1

execute_obj()

用途:执行sql返回字符串;

示例:查询表行数

String s=execute_obj("     select count(1) from TBALE_NAME  ");  
1

execute_data()

用途:执行sql返回数据集;

示例:查询表数据集

 List<HashMap<String,String>> s=execute_obj("      select * from TBALE_NAME  "); 
1

# 2.2 主机函数

getCpu()

用途:查询linux主机cpu内存使用情况。

语法:getCpu(user,password,ip);

user:用户名

password:密码

ip:主机ip

示例:查询主机ip

getCpu("root","root",  "127.0.0.1");  
1

# 2.3 企业微信对接接口函数

get_qw_to_db_multi()

用途:获取企业微信接口的数据集并存入指定表

语法:get_qw_to_db_multi(https,corpid,corpsecret,httpDataJsonObject,fieldsJsonObject,tableName);

https:请求的ip地址

corpid:企业id

corpsecret:接口Secret

httpDataJsonObject:接口参数json

fieldsJsonObject:接口返回的json对应的表字段

tableName:存入的表名称

示例:获取企业微信客户群列表

jsonObject = new JSONObject();  JSONPath.set(jsonObject,"status_filter",0);  JSONPath.set(jsonObject,"owner_filter.userid_list[0]","abel");  JSONPath.set(jsonObject,"cursor","r9FqSqsI8fgNbHLHE5QoCP50UIg2cFQbfma3l2QsmwI");  JSONPath.set(jsonObject,"limit",10);  jsonObject1 = new JSONObject();  JSONPath.set(jsonObject1,"group_chat_list[0].chat_id","chat_id");  JSONPath.set(jsonObject1,"group_chat_list[0].status","status");  JSONPath.set(jsonObject1,"next_cursor","next_cursor");  get_qw_to_db_multi("https://qyapi.weixin.qq.com/cgi-bin/externalcontact/groupchat/list","wwc2ec284b7ac1234432","qerfr3443r3f2-tqCYa1vHxg4tuQagBsK2cFM",jsonObject,jsonObject1,"group_chat_list");  
1

get_qw_to_db()

用途:获取企业微信接口的单条数据并存入指定表

语法:get_qw_to_db(https,corpid,corpsecret,httpDataJsonObject,fieldsJsonObject,tableName);

https:请求的ip地址

corpid:企业id

corpsecret:接口Secret

httpDataJsonObject:接口参数json

fieldsJsonObject:接口返回的json对应的表字段

tableName:存入的表名称

示例:获取企业微信客户详情

jsonObject = new JSONObject();  jsonObject1 = new JSONObject();  JSONPath.set(jsonObject1,"external_contact.external_userid","external_userid");  JSONPath.set(jsonObject1,"external_contact.name","name");  JSONPath.set(jsonObject1,"external_contact.avatar","avatar");  JSONPath.set(jsonObject1,"external_contact.corp_name","corp_name");  JSONPath.set(jsonObject1,"external_contact.corp_full_name","corp_full_name");  JSONPath.set(jsonObject1,"external_contact.type","type");  JSONPath.set(jsonObject1,"external_contact.gender","gender");  JSONPath.set(jsonObject1,"external_contact.unionid","unionid");  JSONPath.set(jsonObject1,"external_contact.position","position");  JSONPath.set(jsonObject1,"external_contact.external_userid","external_userid");  get_qw_to_db("https://qyapi.weixin.qq.com/cgi-bin/externalcontact/get?external_userid=ZhangTong&cursor=NEXT_CURSOR","wwc2ec284b7ac97620","2mPKB4Mk5VrSZe9sedD-tqCYa1vHxg4tuQagBsK2cFM",jsonObject,jsonObject1,"externalcontact");  
1