如何解决JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@4c4ae57b] will not be managed by Spring
时间: 2023-12-10 16:42:59 浏览: 242
这个问题通常发生在使用Spring框架时,因为Spring默认使用自己的连接池来管理数据库连接,而不是使用JDBC连接池。因此,如果你使用了JDBC连接池,就会收到该警告。
解决方法是告诉Spring不要管理你的JDBC连接。你可以通过在Spring的配置文件中添加以下内容来实现:
```xml
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mydb"/>
<property name="username" value="root"/>
<property name="password" value=""/>
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>
</bean>
```
在这个例子中,我们使用 `DriverManagerDataSource` 来创建一个 JDBC 数据源,并将其设置为 `JdbcTemplate` 的数据源。这样就可以使用 `JdbcTemplate` 来执行 SQL 语句了,而不会收到警告信息。
另外,如果你使用的是 Spring Boot,你可以在 `application.properties` 文件中添加以下配置:
```
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.tomcat.test-on-borrow=true
spring.datasource.tomcat.validation-query=SELECT 1
```
这将告诉 Spring Boot 使用Tomcat连接池,而不是Spring自己的连接池。这样就可以避免警告信息了。