регистрация выражений SQL из HSQLDB - PullRequest
6 голосов
/ 08 февраля 2012

Я использую HSQLDB в своем приложении. Теперь мне нужно регистрировать каждый SQL-оператор, который был выполнен. Я не хочу заниматься обработкой SQL-сообщений самостоятельно. Есть ли стандартный способ сделать это из HSQLDB?

Ответы [ 2 ]

11 голосов
/ 09 февраля 2012

HSQLDB 2.2.x поддерживает ведение журнала SQL. Предположим, что ваша база данных называется test, и вы подключаетесь с помощью JDBC URL jdbc:hsqldb:file:test

  1. test.log - это журнал изменений данных, используемый HSQLDB для внутренних целей. Он не содержит операторов SELECT. Он создан и удален HSQLDB. Это не то, что вы ищете.

  2. test.sql.log - это журнал, который содержит все операторы SQL с информацией о времени и сеансе, а также любые аргументы для подготовленных операторов. Этот журнал создается, если вы используете:

    УСТАНОВКА БАЗЫ ДАННЫХ СОБЫТИЙ SQL УРОВЕНЬ 3

Содержит такие записи:

2012-02-08 22:19:36.484 DETAIL 4 CALL USER() 
2012-02-08 22:19:36.484 DETAIL 4 call database_version() 
2012-02-08 22:19:36.484 DETAIL 4 COMMIT 
2012-02-08 22:19:36.500 DETAIL 4 INSERT INTO Customer VALUES(0,'Laura','Steel','429 Seventh Av.','Dallas') 

Вы можете использовать hsqldb.sqllog = 3 для URL

  1. test.sql.app.log - это журнал, который содержит записи для внутренних операций сохранения. Это не относится к выполненным операторам SQL.

См. Руководство здесь и проверьте синтаксис команды и свойства в конце главы:

http://hsqldb.org/doc/2.0/guide/management-chapt.html#mtc_monitoring_operation

1 голос
/ 08 февраля 2012

Не специфично для HSQLDB, но если ваш клиент использует JDBC, возможно, самый простой способ записывать операторы SQL - использовать оболочку драйвера JDBC.Есть множество реализаций на выбор.

...