Иногда нужно узанть какой именно код меняет те или иные данные в базе.
Пример из жизни: при выполнении операции регистрации пользователя неожиданно создавалась
запись в таблице счетов, при том - дважды, что было неправильно.
В коде метода регистрации пользователя никаких упоминаний счетов не было.
Чудеса были скрыты в аспекте, который неявно цеплялся к операции регистрации
и делал своё черное дело.
Ещё пример: в большом блоке кода, который редактирует десятки таблиц и
сотни строк, найти тот участок который модифицирует нужную строку, - как?
Я написал небольшой поект, может быть кому нибудь будет полезен:
http://code.google.com/p/sqlwatch/ Весь проект это один класс - логгер к MySQL.
Он позволяет задавать SQL запросы для мониторинга,
и в случае если результат выборки по запросу меняется это можно обработать,
например поставить брейкпоинт и пройти по стеку до строчки в которой непосредственно
был вызван запрос INSERT/UPDATE/etc.
if (watch("SELECT count(*) from city")) {
System.out.println("Changes detected!"); //place breakpoint here
}