SQL Server

对于 SQL Server,我们必须决定是使用 sqlserver17 还是使用默认的较旧版本。

sqlserver17

要设置以使用 sqlserver17,我们应该将 databasePlatformName 设置为 sqlserver17,在 ebean.databasePlatformName> 级别或 ebean.test.sqlserver.databasePlatformName> 级别。

ebean:
  databasePlatformName: sqlserver17  ## only using sql server
  test:
    platform: sqlserver # h2, postgres, mysql, oracle, sqlserver
    ddlMode: dropCreate # none | dropCreate | migrations
    dbName: test
    sqlserver:
      #collation: SQL_Latin1_General_CP1_CS_AS  ## use an explicit collation
      #collation: default                       ## use the sql server default

在针对多个数据库平台进行测试时,将 databasePlatformName: sqlserver17 放在 sqlserver 下,如下面的示例所示

ebean:
  test:
    platform: sqlserver # h2, postgres, mysql, oracle, sqlserver
    ddlMode: dropCreate # none | dropCreate | migrations | create
    dbName: test

    sqlserver:
      databasePlatformName: sqlserver17         ## put here when testing multiple platforms
      #collation: SQL_Latin1_General_CP1_CS_AS  ## use an explicit collation
      #collation: default                       ## use the sql server default

上述内容将使用以下默认值

用户名{databaseName}
密码SqlS3rv#r
端口1433
URLjdbc:sqlserver://localhost:{port};databaseName={databaseName}
驱动程序com.microsoft.sqlserver.jdbc.SQLServerDriver
镜像microsoft/mssql-server-linux:{version}

ebean-sqlserver 依赖项

如果我们只想引入 SqlServer 特定的平台代码,我们可以使用 io.ebean:ebean-sqlserver 依赖项,而不是 io.ebean:ebean。依赖于 io.ebean:ebean 将引入所有平台。

Docker 容器

我们可以以编程方式启动 SqlServer 的 docker 容器版本。

下面使用 ebean-test-docker 依赖项,该依赖项已随附 ebean-test。如果我们不依赖于 ebean-test,则添加 io.ebean:ebean-test-docker:5.0 作为依赖项。

package main;

import io.ebean.docker.commands.SqlServerContainer;

public class Main {

  public static void main(String[] args) {

    SqlServerContainer container = SqlServerContainer.newBuilder("2019-CU15-ubuntu-20.04")
      .dbName("my_app")
      .collation("SQL_Latin1_General_CP1_CS_AS")
      // .containerName("ut_sqlserver")
      // .port(1433)
      .build();

    container.start();
  }
}