在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());