pom.xml导入一下依赖包
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-agroal</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.17</version>
</dependency>
import io.agroal.api.AgroalDataSource;
import io.agroal.api.configuration.AgroalDataSourceConfiguration;
import io.agroal.api.configuration.supplier.AgroalDataSourceConfigurationSupplier;
import io.agroal.api.security.NamePrincipal;
import io.agroal.api.security.SimplePassword;
import org.eclipse.microprofile.config.inject.ConfigProperty;
import static io.agroal.api.configuration.AgroalConnectionPoolConfiguration.ConnectionValidator.defaultValidator;
import static java.time.Duration.ofSeconds;
import javax.enterprise.context.ApplicationScoped;
public class MyDb {
@ConfigProperty(name="quarkus.datasource.username")
String username;
@ConfigProperty(name="quarkus.datasource.password")
String password;
@ConfigProperty(name="quarkus.datasource.jdbc.url")
String url;
@ApplicationScoped
public AgroalDataSource getDefaultDataSource(){
try {
return AgroalDataSource.from(createDataSourceConfiguration());
}catch (Exception e){
e.printStackTrace();
}
return null;
}
private AgroalDataSourceConfiguration createDataSourceConfiguration() {
System.out.println("url="+url);
return new AgroalDataSourceConfigurationSupplier()
.dataSourceImplementation(AgroalDataSourceConfiguration.DataSourceImplementation.AGROAL)
.metricsEnabled(false)
.connectionPoolConfiguration(cp -> cp.minSize(0).maxSize(5).initialSize(0)
.connectionValidator(defaultValidator()).acquisitionTimeout(ofSeconds(5))
.leakTimeout(ofSeconds(5)).validationTimeout(ofSeconds(50)).reapTimeout(ofSeconds(500))
.connectionFactoryConfiguration(cf -> cf
.jdbcUrl(url)
.connectionProviderClassName("com.mysql.cj.jdbc.Driver")
// .connectionProviderClassName("org.postgresql.Driver")
.principal(new NamePrincipal(username))
.credential(new SimplePassword(password))))
.get();
}
}
全部评论