当前位置: 首页 > 面试题库 >

在Java代码中运行liquibase

狄宇
2023-03-14
问题内容

由于某种原因,没有关于在Java代码中运行liquibase的文档。我想为单元测试生成表。

我将如何直接在Java中运行它?

例如

Liquibase liquibase = new Liquibase()
liquibase.runUpdates() ?

问题答案:

它应该类似于(取自liquibase.integration.spring.SpringLiquibase源代码):

java.sql.Connection c = YOUR_CONNECTION;
Liquibase liquibase = null;
try {
    Database database = DatabaseFactory.getInstance().findCorrectDatabaseImplementation(new JdbcConnection(c))
    liquibase = new Liquibase(YOUR_CHANGELOG, new FileSystemResourceAccessor(), database);
    liquibase.update();
} catch (SQLException e) {
    throw new DatabaseException(e);
} finally {
    if (c != null) {
        try {
            c.rollback();
            c.close();
        } catch (SQLException e) {
            //nothing to do
        }
    }
}

ResourceAccessor有多种实现方式,具体取决于应如何找到更改日志文件



 类似资料:
  • 问题内容: codepad.org允许您在线运行C,C ++,D等代码,但不能运行Java …我可以使用Java的网站吗? 问题答案: 还有http://ideone.com/(支持多种语言)

  • 问题内容: 我试图基于此建议从我的java类运行maven: 如何从Java运行Maven? 但我得到: mvn在我的路上,我可以从cmd运行它: 有什么建议? 问题答案: 尝试: 编辑: 响应第一个问题… 是。请参阅:Process#getInputStream。基本上,您将需要使用正在创建的子流程的输出。 我也喜欢这篇文章:http : //www.javaworld.com/javaworl

  • 问题内容: 我想编写一个Java while循环,该循环将迭代15秒。我认为要执行此操作的一种方法是存储当前系统时间+ 15秒,然后将其与while循环签名中的当前时间进行比较。 有没有更好的办法? 问题答案: 此设计取决于您15秒钟要做什么。两种最合理的情况是“每X进行15秒钟”或“等待X发生或15秒钟以较早者为准”,这将导致截然不同的代码。 刚等 线程睡眠(15000) 这不会重复,但是如果您

  • 问题内容: 大约一年前,我偶然发现了Java的一个不错的功能,我一生都找不到。 通过一些魔术接口,显然可以在运行时声明一些可替换的类或函数。 我找到了一个很好的示例指南,该人运行了一个简单的小程序,该程序打印了一条特定的消息,然后他使用一种我不记得的方法更新了该程序,然后突然该程序将旧的打印功能替换为新的打印功能。 我尝试浏览Java API来激发我的记忆力和谷歌搜索功能,但没有成功。有人可以帮忙

  • 问题内容: 我已经编写了一些代码来编译Java源代码。然后生成.class文件。问题是如何运行它? 例如,我可以设置程序和类的名称,可以使用prog p = new prog(),但是在这种情况下,类文件在编译之前尚不存在。不太确定该怎么办。有人可以给我建议吗? 顺便说一句,该类如下所示: 问题答案: 如果只想运行它,则可以使用Runtime.exec或ProcessBuilder启动Java进程

  • 问题内容: 基本上,我想做两件事: 我想知道是否可以使用Java代码运行Java代码。 如果可能的话,如何在屏幕上显示输出?(无论是常规输出还是错误或异常) 我知道这是可能的,因为我的一位前辈已经做到了,但是我不知道他是如何做到的。也许他使用了Java的内置类之一。 注意:用户将代码写入一些文本文件中,然后将文件内容存储在某个变量中,然后也许运行该代码。 问题答案: 是的,有可能。 步骤1:编译代