Rumah >pangkalan data >tutorial mysql >Bagaimanakah saya boleh log pertanyaan Hibernate SQL dengan nilai parameter sebenar mereka?

Bagaimanakah saya boleh log pertanyaan Hibernate SQL dengan nilai parameter sebenar mereka?

Linda Hamilton
Linda Hamiltonasal
2025-01-22 22:58:12252semak imbas

How can I log Hibernate SQL queries with their actual parameter values?

Cetak pertanyaan yang mengandungi nilai parameter dalam Hibernate

Apabila menggunakan Hibernate, selalunya perlu untuk melihat pertanyaan SQL sebenar yang dilaksanakan, termasuk nilai parameter. Tingkah laku lalai Hibernate adalah untuk melog pertanyaan SQL menggunakan tanda soal (?) sebagai ruang letak untuk nilai parameter.

Adakah mungkin untuk mencetak pertanyaan yang mengandungi nilai sebenar menggunakan API Hibernate?

Tidak, Hibernate tidak menyediakan API untuk mencetak pertanyaan SQL yang mengandungi nilai sebenar.

Cara mencetak pertanyaan yang mengandungi nilai sebenar

Untuk membolehkan ciri ini berfungsi, pengelogan perlu didayakan untuk kategori berikut:

<code>org.hibernate.SQL - 设置为debug以记录所有SQL DML语句的执行情况
org.hibernate.type - 设置为trace以记录所有JDBC参数</code>

Contoh konfigurasi Log4j:

<code># 记录SQL语句
log4j.logger.org.hibernate.SQL=debug

# 记录传递给查询的JDBC参数
log4j.logger.org.hibernate.type=trace</code>

Konfigurasi pertama adalah bersamaan dengan sifat lama Hibernate hibernate.show_sql=true, dan konfigurasi kedua mencetak parameter pengikat dan maklumat lain.

Alternatif

Jika pengelogan Hibernate tidak mencukupi, anda boleh menggunakan pemacu proksi JDBC seperti P6Spy untuk menangkap dan melog pertanyaan SQL yang mengandungi nilai parameter.

Atas ialah kandungan terperinci Bagaimanakah saya boleh log pertanyaan Hibernate SQL dengan nilai parameter sebenar mereka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn