gpt4 book ai didi

mysql - MyBatis能否记录可以直接运行的完整SQL

转载 作者:行者123 更新时间:2023-11-29 10:00:27 24 4
gpt4 key购买 nike

MyBatis能否记录可以直接运行的完整SQL

最佳答案

一般情况下答案是否定的。

如果查询有参数,mybatis 原则上也不能这样做。为了记录查询,所有参数都应该序列化并表示为字符串。对于 StringInteger 等简单数据类型,这不是问题,但对于 TimestampBlob 表示等更复杂的数据类型可能取决于数据库。

执行查询时,无需将参数转换为字符串,因为 JDBC 驱动程序以更有效(且依赖于数据库)的格式将它们传递到数据库。但出于日志记录的目的,mybatis 只有 java 对象,并且 mybatis 不知道如何将它们表示为数据库特定的字符串文字。

因此,您可以拥有的最好的方法(以及 mybatis 中的 is supported)是使用单独使用的占位符和日志参数来记录查询。为以映射器命名的记录器配置 DEBUG 日志级别。

对于 log4j 配置如下所示:

log4j.logger.my.org.myapp.SomeMapper=DEBUG

关于mysql - MyBatis能否记录可以直接运行的完整SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53096361/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com