diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/DatabaseDriver.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/DatabaseDriver.java index 367f0dcd309c..d17e1b47c44f 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/DatabaseDriver.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/DatabaseDriver.java @@ -99,6 +99,12 @@ public String getId() { POSTGRESQL("PostgreSQL", "org.postgresql.Driver", "org.postgresql.xa.PGXADataSource", "SELECT 1"), + /** + * SAP - SAP Hana Database - HDB. + */ + SAP("HDB", "com.sap.db.jdbc.Driver", "com.sap.db.jdbcext.XADataSourceSAP", + "SELECT 1 FROM DUMMY"), + /** * jTDS. As it can be used for several databases, there isn't a single product name we * could rely on. diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/DatabaseDriverTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/DatabaseDriverTests.java index 0396a75b8892..2778231653db 100644 --- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/DatabaseDriverTests.java +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/DatabaseDriverTests.java @@ -74,6 +74,7 @@ public void databaseProductNameLookups() { assertThat(DatabaseDriver.fromProductName("Apache Derby")) .isEqualTo(DatabaseDriver.DERBY); assertThat(DatabaseDriver.fromProductName("H2")).isEqualTo(DatabaseDriver.H2); + assertThat(DatabaseDriver.fromProductName("HDB")).isEqualTo(DatabaseDriver.SAP); assertThat(DatabaseDriver.fromProductName("HSQL Database Engine")) .isEqualTo(DatabaseDriver.HSQLDB); assertThat(DatabaseDriver.fromProductName("SQLite")) @@ -113,6 +114,8 @@ public void databaseJdbcUrlLookups() { .isEqualTo(DatabaseDriver.DERBY); assertThat(DatabaseDriver.fromJdbcUrl("jdbc:h2:~/sample")) .isEqualTo(DatabaseDriver.H2); + assertThat(DatabaseDriver.fromJdbcUrl("jdbc:sap:localhost")) + .isEqualTo(DatabaseDriver.SAP); assertThat(DatabaseDriver.fromJdbcUrl("jdbc:hsqldb:hsql://localhost")) .isEqualTo(DatabaseDriver.HSQLDB); assertThat(DatabaseDriver.fromJdbcUrl("jdbc:sqlite:sample.db"))