
Spring Boot 3 移除了部分旧的 Hibernate 配置属性,因此在 Spring Boot 2.x 中使用的参数绑定日志配置可能不再有效。本文将介绍如何在 Spring Boot 3 中正确配置日志,以便显示 JPA 查询的 SQL 参数绑定信息。
要启用 SQL 参数绑定的日志记录,需要修改 application.properties 或 application.yml 文件,设置以下日志级别:
logging.level.org.hibernate.orm.jdbc.bind=trace logging.level.org.hibernate.type=trace logging.level.org.hibernate.stat=debug
或者,使用 YAML 格式:
logging:
level:
org:
hibernate:
orm:
jdbc:
bind: trace
type: trace
stat: debug这些配置的作用如下:
假设我们有一个简单的 JPA 实体 User:
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private int age;
// Getters and setters
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}以及一个对应的 JPA Repository:
MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plan Old Java Objects,普通的 Java 对象)映射成数据库中的记录。有需要的朋友可以下载看看
1
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<User, Long> {
}在 Spring Boot 应用中,我们可以使用 UserRepository 查询数据,例如:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication implements CommandLineRunner {
@Autowired
private UserRepository userRepository;
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
// Create a user
User user = new User();
user.setName("John Doe");
user.setAge(30);
userRepository.save(user);
// Find all users
userRepository.findAll();
}
}配置上述日志级别后,运行程序,在控制台中可以看到如下类似的日志输出:
2023-10-27 10:00:00.000 TRACE [main] org.hibernate.orm.jdbc.bind - binding parameter [1] as [VARCHAR] - [John Doe] 2023-10-27 10:00:00.000 TRACE [main] org.hibernate.orm.jdbc.bind - binding parameter [2] as [INTEGER] - [30] ...
这些日志信息清楚地显示了 SQL 语句中每个参数的绑定值,有助于调试 SQL 查询。
通过正确配置 Hibernate 的日志级别,可以在 Spring Boot 3 项目中轻松地记录 JPA 查询中的 SQL 参数绑定信息。这对于调试和优化数据库操作非常有帮助。请记住,trace 级别的日志输出非常详细,应谨慎使用,并根据实际情况调整日志级别。
以上就是使用 Spring Boot 3 记录 JPA 查询中的 SQL 参数绑定的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号