2016-08-05 5 views
1

Spring起動時にDB接続を取得した後でカスタムSQL文を直接実行するにはどうすればよいですか?Spring起動時に各DB接続の開始時にSQL文を実行する

新しい接続が確立されるたびにSQLを実行する必要があります。

解決策は、Spring BootのデフォルトのDataSource実装(Tomcatのプーリング・データソースだと思います)で動作するはずです。

あなたは各プールを構成することができますように見え、本当に文が何であるかは関係ありませんが、私の場合、それはALTER SESSION SET CURRENT_SCHEMA=xxxx

+0

は、あなたの接続文字列で使用するスキーマを設定することができませんか? '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-production-databaseへの接続) –

+0

@StephenP残念ながら、Oracleでは接続文字列のスキーマはサポートされていません。 – jhyot

答えて

8

TomcatのJDBC接続プールのパラメータを持っている「initSQL」https://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html

になりますあなたの.propertiesファイル内のパラメータだから、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 
関連する問題