رسول مدنی
رسول مدنی
خواندن ۱ دقیقه·۳ ماه پیش

چگونه کوئری های اس کیو ال ( sql ) را در اسپرینگ بوت جاوا زیباتر و دقیق تر ببینیم ؟

datasource-proxy
datasource-proxy


بسم الله الرحمن الرحیم

اگر بخواهیم زمان اجرای کوئری ها و پارامترها و تعداد کوئری ها و ... را در کنسول هنگام اجرای اسپرینگ بوت داشته باشیم یک کتابخانه ای برای اینکار در میون maven وجود دارد به اسم

datasource-proxy

این کتابخانه اطلاعات خوبی از کوئری به ما می دهد یک نمونه از لاگ آن را در کنسول در صفحه بعد می توانید ببینید :

2024-08-12 12:00:00.000 DEBUG 12345 --- [ main ] net.ttddyy.dsproxy.listener.SLF4JQueryLoggingListener: Name:MyDS, Time:5ms, Success:True Type:Prepared, Batch:False, QuerySize:1, BatchSize:0 Query:[&quotSELECT * FROM users WHERE id = ?&quot] Params:[(1)]


برای نصب و تنظیم این کتابخانه در اسپرینگ بوت به روش زیر عمل میکنیم :‌

۱ – ابتدا این کتابخانه را به pom.xml اضافه کنید :‌


<dependency>     <groupId>net.ttddyy</groupId>     <artifactId>datasource-proxy</artifactId>     <version>1.10</version> </dependency>



۲ – این چند خط را در application.properties اضافه کنید :

spring.jpa.show-sql=true spring.jpa.properties.hibernate.format_sql=true # Set the logging level for datasource-proxy to DEBUG to see query logs logging.level.net.ttddyy.dsproxy.listener.SLF4JQueryLoggingListener=DEBUG logging.level.net.ttddyy.dsproxy.listener=DEBUG # Set the logging level for the package where your DataSourceConfig class is located logging.level.your.package.DataSourceConfig=DEBUG



۳ – یک کلاس به نام DataSourceConfig ایجاد کنید و این کدها را درون آن قرار دهید :‌

import net.ttddyy.dsproxy.support.ProxyDataSourceBuilder; import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import javax.sql.DataSource; @Configuration public class DataSourceConfig { @Bean public DataSource dataSource(DataSourceProperties dataSourceProperties) { DataSource originalDataSource = dataSourceProperties.initializeDataSourceBuilder().build(); return ProxyDataSourceBuilder .create(originalDataSource) .name(&quotMyDS&quot) .countQuery() .logQueryBySlf4j() // Log queries using SLF4J (visible in console) .build(); } }


برنامه را اجرا کنید و از لاگ های زیبای این کتابخانه لذت ببرید .

اسپرینگ بوتgt ltspring bootjavaجاوا
برنامه نویس جاوا
شاید از این پست‌ها خوشتان بیاید