Плагин MyBatis для SonarQube: правила проверки SQL-операторов в файлах Mapper XML MyBatis.
Risk SQL — это ситуация, когда в файле Mapper есть динамический SQL, например, элементы <if test=""></if>
. Если все параметры в элементах SQL-оператора файла Mapper XML равны нулю, то SQL может быть сопряжён с большим риском.
Пример:
WHERE 1=1
<if test="startTime != null">
AND start_time <![CDATA[=]]> #{startTime}
</if>
<if test="endTime != null">
AND end_time <![CDATA[=]]> #{endTime}
</if>```
## Правила MyBatis
Существует 7 встроенных правил MyBatis: три правила для оператора SELECT, два правила для операторов UPDATE и DELETE.

## Как установить?
Есть два варианта установки плагина в SonarQube:
* Marketplace — устанавливает плагины автоматически из пользовательского интерфейса SonarQube.
* Ручная установка — этот метод используется, если ваш экземпляр SonarQube не имеет доступа к Интернету.
### Marketplace
Если у вас есть доступ к Интернету и вы подключены к пользователю SonarQube с глобальным разрешением «Администрировать систему», перейдите в раздел «Администрирование» > «Marketplace».
* Найдите плагин с помощью поиска `mybatis`.
* Нажмите «Установить» и дождитесь завершения загрузки.
После завершения загрузки появится кнопка «Перезапустить», чтобы перезапустить экземпляр.
### Ручная установка
Плагин можно загрузить с [github release](https://github.com/donhui/sonar-mybatis/releases/).
Поместите скачанный jar-файл в `$SONARQUBE_HOME/extensions/plugins`, удалив предыдущие версии тех же плагинов.
После этого вам нужно будет перезапустить сервер SonarQube.
## Как использовать?
Вот пример использования команды сборки maven:
```mvn clean compile -U -Dmaven.test.skip=true -Dmaven.javadoc.skip=true sonar:sonar -Dsonar.host.url=http://127.0.0.1:9000/ -Dsonar.projectKey=demo -Dsonar.projectName=demo -Dsonar.sourceEncoding=UTF-8 -Dsonar.sources=. -Dsonar.inclusions=src/main/** -Dsonar.exclusions==src/main/webapp/**```
Для анализа файла mybatis mapper каталог `src/main/resources` должен быть в `sonar.sources`.
## Поддержка глобального исключения идентификатора Stmt
Для особых проблем с операторами, если вы хотите их игнорировать, вы можете поместить идентификатор оператора с пространством имён в глобальный список исключений идентификатора оператора.

## Пропуск датчика MyBatis
Если вы иногда хотите пропустить датчик mybatis, вы можете изменить глобальные свойства `sonar.mybatis.skip` на `true` или добавить параметр в команду: `-Dsonar.mybatis.skip=true`.
## Внести свой вклад
Пожалуйста, сообщайте об ошибках и запросах функций на https://github.com/donhui/sonar-mybatis/issues.
Или вы можете отправлять запросы на вытягивание для исправления ошибок или создания новых функций, любой вклад приветствуется.
# Звёзды за всё время
## История звёзд
[](https://star-history.com/#donhui/sonar-mybatis&Date)
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )