2

我将 Hibernate 4.3.5-Final 用于我的 Java Swing 应用程序,并且我做了很多UDPATE,INSERTDELETE使用它(在 HQL 或 with 中Criteria)。

现在,我要做的是导出对我的数据库所做的所有修改的 SQL 脚本,但我不知道该怎么做。这个脚本只需要包含修改(而不是表的创建)并将它们放在一个.sql文件中(导出的文件路径将由用户选择)

你有什么想法可以解决我的问题吗?

先感谢您 !

[编辑]:一些论坛讨论p6spy,它可以回答我的问题吗?

4

1 回答 1

4

p6spy应该在这里有所帮助。

一般来说,以下应该为您完成工作:

  1. 在您的应用中启用p6spy(参见官方文档: http: //p6spy.github.io/p6spy/

之后你基本上有两个选择:

  1. 使用提供的: BatchFileLogger,通过: appender=com.p6spy.engine.spy.appender.BatchFileLoggerin启用它spy.properties(但尚未记录,请参阅:https ://github.com/p6spy/p6spy/issues/119 )

或者

  1. 实现 custom com.p6spy.engine.spy.appender.MessageFormattingStrategy,这将只返回 sql (有关实现的想法,请参见: httpsspy.properties ://stackoverflow.com/a/23521623/1581069)并通过以下方式配置它:logMessageFormat=FooFormat
  2. 设置sqlexpression为匹配您需要的查询 - 限制CREATE/ALTER/... TABLE/SEQUENCE/...(参见官方文档: http: //p6spy.github.io/p6spy/2.0/configandusage.html

仍然有一些棘手的问题,例如:

于 2014-05-14T12:58:30.437 回答