更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢!

 

简介:Sonar平台是目前较为流行的静态代码扫描平台,为了便于使用以及自己二次开发,有必要对它的数据库结构进行学习和理解。

如题,目前网络上搜不到相关内容,只能自己慢慢整理,作为资料,以备查询。

 

=========================================================================================

查询某个月被扫描到的最多的规则:
SELECT i.rule_id,r.name AS rulename,COUNT(*) AS COUNT,FROM_UNIXTIME(i.created_at/1000) AS createtime,
r.Priority,i.severity,r.plugin_name FROM issues i
,rules r WHERE i.rule_id = r.id AND FROM_UNIXTIME(i.created_at/1000) <'2017-09-01' AND FROM_UNIXTIME(i.created_at/1000)> '2017-08-01'
GROUP BY i.rule_id ORDER BY COUNT DESC
=========================================================================================
查询所有项目:
SELECT NAME FROM projects WHERE scope='PRJ'
=========================================================================================
查询当月所有问题以及对应的项目名、作者、rule id、严重级别等信息:
SELECT p.name AS projectname,i.rule_id,i.message,i.author_login,FROM_UNIXTIME(i.created_at/1000) AS createtime,
i.severity FROM issues i,projects p
WHERE p.project_uuid=i.project_uuid AND p.scope='PRJ'
AND FROM_UNIXTIME(i.created_at/1000) <'2017-09-01' AND FROM_UNIXTIME(i.created_at/1000)> '2017-08-01'
ORDER BY rule_id DESC
=========================================================================================
根据profile_id查询当前正在使用的所有rule id(profile_id是当前使用的配置文件id)
SELECT rule_id FROM active_rules WHERE profile_id = '13'
=========================================================================================
查询当前默认使用的java规则的所有rule id:
SELECT rule_id FROM active_rules a, rules_profiles r WHERE a.profile_id = r.id AND r.is_default=1 AND r.LANGUAGE='java'
 
查询当前当前默认使用的java规则的id、name、priority、description:
SELECT a.rule_id ,b.name,b.priority,b.description
FROM active_rules a, rules_profiles r,rules b
WHERE a.profile_id = r.id AND r.is_default=1 AND r.LANGUAGE='java' AND a.rule_id=b.id
 
查询当前当前默认使用的java规则的id、name、type、severity、description:
SELECT a.rule_id ,b.name,
CASE b.rule_type
WHEN '1' THEN 'CODE SMELL' WHEN '2' THEN 'BUG' WHEN '3' THEN 'Vulnerability' ELSE 'Other' END AS TYPE,
CASE a.failure_level
WHEN '0' THEN 'INFO' WHEN '1' THEN 'MINOR' WHEN '2' THEN 'MAJOR' WHEN '3' THEN 'CRITICAL' ELSE 'BLOCKER' END AS severity,
b.description
FROM active_rules a, rules_profiles r,rules b
WHERE a.profile_id = r.id AND r.is_default=1 AND r.LANGUAGE='java' AND a.rule_id=b.id
 
感谢阅读,作者原创技术文章,转载请注明出处
 
内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!