Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

Spring + DBCP + MySQLで接続が閉じたコネクションを利用して例外が発生することを防ぐ

BasicDataSourceのvalidationQueryプロパティに検証用SQLを設定する。

Spring設定ファイル。

	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
		destroy-method="close" p:driverClassName="${jdbc.driverClassName}"
		p:url="${jdbc.url}" p:username="${jdbc.username}" p:password="${jdbc.password}"
		p:validationQuery="${jdbc.validationQuery}">
	</bean>
	<context:property-placeholder location="classpath:jdbc.properties" />

jdbc.properties

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/XXX
jdbc.username=XXX
jdbc.password=XXX
jdbc.validationQuery=select 1

「select 1」はMySQLでは有効なSQL。