当前位置 博文首页 > weixin_ccjz9527的博客:冬眠秀sql
当您使用数据库交互开发弹簧靴应用程序时,您通常使用冬眠作为对象关系映射(ORM)工具。
通常,您更愿意使用春天数据JPA,一个春天框架项目,而不是将您的代码与冬眠直接耦合。
通过抽象持久化数据所涉及的大部分复杂性春季数据使数据访问层的实现变得异常简单。
通常,当您使用冬眠和春季数据时,您需要了解幕后发生了什么。 看到冬眠生成的实际结构化查询语言语句非常有帮助。
由于冬眠和春季数据提供的抽象的本质,很容易无意中创建n+1个查询 很 不利于应用程序的性能。
在这篇文章中,我将分享一个关于如何配置冬眠和春季数据来记录执行的结构化查询语言语句和使用的绑定参数的技巧。
为了这篇文章的目的,我创建了一个简单的弹簧靴应用程序。 在这个应用程序中,我们可以对一个实体执行CRUD操作。
这是实体。
产品。爪哇岛:
下面是一个保存和检索产品的JUnit测试类。
如果你是JUnit新手,我建议你看看我的JUnit系列文章。
ProductRepositoryTest。爪哇岛:
要使用弹簧靴激活已执行的结构化查询语言语句的日志记录,请将类别的日志级别设置为。
如果希望查看绑定值,可以将的日志级别设置为。
如果您是日志框架的新手,请参考我在Log4J2上的系列文章。
下面是中的日志配置 应用程序。性能。
应用程序。性能:
数据库同步软件
以下是显示冬眠生成的结构化查询语言语句的日志输出:
如果您使用带有冬眠的春季数据作为持久性提供程序,请在中添加以下两行 应用程序。性能:
以下是日志输出:
如您所见,使用弹簧靴和冬眠很容易实现结构化查询语言语句的日志记录。
能够看到冬眠实际上对数据库做了什么非常重要。
通常,当我在进行一个弹簧靴项目时,我会启用结构化查询语言输出作为一个健全性检查。 我可能相信一切都很好。
但是实际上,通过检查SQL输出,我发现了我不知道的问题。