1
如何在使用Spring Boot獲得數據庫連接後直接運行自定義SQL語句?在Spring Boot的每個數據庫連接開始時運行SQL語句
每次建立新連接時都需要運行SQL。
該解決方案應該與Spring Boot的默認DataSource實現(我認爲它是一個Tomcat池數據源)一起工作。
它並不真正重要的語句是什麼,但對我來說這將是ALTER SESSION SET CURRENT_SCHEMA=xxxx
如何在使用Spring Boot獲得數據庫連接後直接運行自定義SQL語句?在Spring Boot的每個數據庫連接開始時運行SQL語句
每次建立新連接時都需要運行SQL。
該解決方案應該與Spring Boot的默認DataSource實現(我認爲它是一個Tomcat池數據源)一起工作。
它並不真正重要的語句是什麼,但對我來說這將是ALTER SESSION SET CURRENT_SCHEMA=xxxx
Tomcat的JDBC連接池有一個參數「initSQL」 https://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html
看起來你可以配置每個池在你的屬性文件參數1.4之前(@see https://stackoverflow.com/a/25573035/280244)
所以給一個嘗試,
春季啓動:
spring.datasource.initSQL=ALTER SESSION SET CURRENT_SCHEMA=xxxx
春季啓動1.4或更高版本:
spring.datasource.tomcat.initSQL=ALTER SESSION SET CURRENT_SCHEMA=xxxx
你不能設置在連接字符串中使用的模式? 'spring.datasource.url = jdbc:mysql:// localhost/myschema' [使用SQL數據庫§29.1.2](http://docs.spring.io/spring-boot/docs/current/reference/html/ boot-features-sql.html#boot-features-connect-to-production-database) –
@StephenP不幸的是,Oracle不支持連接字符串中的模式。 – jhyot