java - 将 war 部署到 Tomcat 时生成数据库

标签 java mysql tomcat deployment war

我的 webapp 有一个 war 文件,当我将 war 从 Tomcat 复制到 webapps 文件夹时(假设 Tomcat 正在运行),我需要在 MySQL 中生成数据库表。

有没有办法做到这一点,你能帮我提供一些相关信息吗?

附言。这是一个非常简单的 webapp,只使用 JDBC,我不使用任何 ORM 框架。 JDBC 可以吗?

最佳答案

如果您只想更新架构,但不想引入像 Hibernate 这样重量级的东西,有一些不错的选择:

  • Flyway - 为您的应用程序提供迁移脚本,以便在部署时对其进行更新。
  • Liquibase - 提供架构的 XML 描述,并允许 Liquibase 更新架构。

Flyway 要求您编写 SQL 以在应用程序的不同版本之间迁移。它根本不生成任何 DDL(用于修改模式的 SQL)。它只是运行你给它的 SQL。如果您熟悉 SQL,并且希望能够使用您的数据库提供的所有功能,我强烈建议您使用它。

启动迁移的代码可以放入 ServletContextListener 中。 Flyway Application Integration 上给出了可以在那里使用的示例代码页面。

Liquibase 通过读取描述将数据库升级到最新模式所需的模式更改的 XML 文件来工作。这些更改按顺序应用。这意味着您的架构和更改更有可能移植到其他数据库,但可以说更难利用特定于您的数据库的功能。

Liquibase 提供了自己的 ServletContextListener 供您使用。查看ServletListener文档中的页面。

如果你确实想引入一个 ORM,你可以看看:

  • Hibernate - 具有很多功能(以及相当多的依赖项)的 ORM
  • EclipseLink - 以前是 Oracle TopLink。这似乎比 Hibernate 更精致,但功能更少。

关于java - 将 war 部署到 Tomcat 时生成数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9036817/

相关文章:

Java compareTo 方法初级

mysql - 将具有相同值的多行分组mysql

java - 使用 apache、java、tomcat、mysql 设置 AMI linux 微实例

java - jdbc 领域、表单登录配置、Tomcat 和数据库连接错误

Java,通过保存旧输入并在新行中添加新输入来写入文件

java - 如何解码可引用字符(从可引用字符到字符)?

java - 如何将 SQL 查询转换为 Spring JPA 查询

mysql - 按最大 ID 和点数对用户进行排名,但(排名错误)

php - 如何从数据库中获取字段值并传递给函数?

java - 如何用http2.0启动tomcat