嵌入数据库的版本不正确(与pom不匹配)

时间:2019-12-21 12:51:36

标签: java hibernate

在pom.xml中,我关注了数据库

  <dependencies>
      <dependency>
          <groupId>com.h2database</groupId>
          <artifactId>h2</artifactId>
          <version>1.4.194</version>
      </dependency>
      <dependency>
          <groupId>org.apache.derby</groupId>
          <artifactId>derby</artifactId>
          <version>10.15.1.3</version>
      </dependency>
  </dependencies>

根据配置文件,我配置H2或Derby

@Bean
@Profile(Dictionaries.Profiles.DB_DERBY)
public DataSource dbSourceDerby() {
    DataSourceBuilder dataSourceBuilder = DataSourceBuilder.create();
    dataSourceBuilder.driverClassName("org.apache.derby.jdbc.EmbeddedDriver");
    dataSourceBuilder.url("jdbc:derby:memory:dbherbytest;create=true");
    dataSourceBuilder.username("sa");
    dataSourceBuilder.password("sa");
    return dataSourceBuilder.build();
}

@Bean
@Profile(Dictionaries.Profiles.DB_H2)
public DataSource dbSourceH2(){
    DataSourceBuilder dataSourceBuilder = DataSourceBuilder.create();
    dataSourceBuilder.driverClassName("org.h2.Driver");
    dataSourceBuilder.url("jdbc:h2:mem:dbh2test;DB_CLOSE_DELAY=-1");
    dataSourceBuilder.username("sa");
    dataSourceBuilder.password("sa");
    return dataSourceBuilder.build();
}

我在应用程序中看到已经加载了正确类型的数据库,但是版本不正确。

对于h2,我期望有1.4.194,但是应用程序显示为1.4.199,对于Derby,我希望看到1.15.1.3,但是我看到1.14.2.0

如果怀疑其他程序包可能包含这些数据库,但是如果我从pom中删除import h2和derby,则会收到错误消息。

这就是我读取数据库信息的方式:

  DataSource dataSource = context.getBean(DataSource.class);
            view.getValue_dbVersion().setText(dataSource
                    .getConnection()
                    .getMetaData()
                    .getDatabaseProductVersion().trim());

            view.getValue_dbName().setText(String.valueOf(context.getBean(DataSource.class)
                    .getConnection()
                    .getMetaData()
                    .getDriverName()).trim());

            view.getValue_dbDriver().setText(
                    DriverManager.getDriver(context.getBean(DataSource.class)
                            .getConnection()
                            .getMetaData().getURL()).getClass().getName().trim());

0 个答案:

没有答案