下面列出了怎么用org.springframework.boot.jdbc.EmbeddedDatabaseConnection的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
public void release(Organization organization) {
entityManagerFactoryService.removeEntityManagerFactory(organization);
EntityManager em = EntityManagerFactoryUtils.getTransactionalEntityManager(emf);
if (!EmbeddedDatabaseConnection.isEmbedded(properties.determineDriverClassName())) {
em.createNativeQuery("drop database " + organization.getId()).executeUpdate();
}
}
@SuppressWarnings("unchecked")
@Override
public DataSource createDataSource(Organization organization) {
return MultitenantUtils.doQuery(() -> {
DataSource dataSouce = null;
DataSourceInfo dataSourceInfo = dataSourceInfoService.get(organization);
if (StringUtils.isEmpty(dataSourceInfo.getJndiName())) {
String master = Constants.MASTER;
if (EmbeddedDatabaseConnection.isEmbedded(dataSourceInfo.getDriverClassName())) {
master = properties.determineDatabaseName();
}
DataSourceBuilder<?> factory = this.properties.initializeDataSourceBuilder();
factory.url(dataSourceInfo.getUrl().replace(databaseNameService.getDatabaseName(master), databaseNameService.getDatabaseName(organization.getId())))
.username(dataSourceInfo.getUsername())
.password(dataSourceInfo.getPassword());
if (!StringUtils.isEmpty(dataSourceInfo.getDriverClassName())) {
factory.driverClassName(dataSourceInfo.getDriverClassName());
}
if (!StringUtils.isEmpty(dataSourceInfo.getType())) {
try {
factory.type((Class<? extends DataSource>) Class.forName(dataSourceInfo.getType()));
} catch (ClassNotFoundException e) {
throw new RuntimeException(e.getMessage());
}
}
publishEvent(organization, dataSourceInfo, factory);
dataSouce = factory.build();
} else {
JndiDataSourceLookup dataSourceLookup = new JndiDataSourceLookup();
dataSouce = dataSourceLookup.getDataSource(dataSourceInfo.getJndiName());
}
dataSourceMap.put(organization.getId(), dataSouce);
this.applicationContext.publishEvent(new OrgDataSourceCreateEvent(dataSouce));
return dataSouce;
});
}
public String getDefaultDdlAuto(DataSource dataSource) {
if (!EmbeddedDatabaseConnection.isEmbedded(dataSource)) {
return "none";
}
SchemaManagement schemaManagement = getSchemaManagement(dataSource);
if (SchemaManagement.MANAGED.equals(schemaManagement)) {
return "none";
}
return "create-drop";
}