jdbc.testOnReturn=true
时间: 2023-09-27 21:12:00 浏览: 57
`jdbc.testOnReturn=true` 是一个 JDBC 连接池的配置属性,用于指定在连接返回到连接池时是否进行连接的有效性检查。具体来说,该属性设置为 `true` 表示连接池会在连接返回时对连接进行有效性检查。
连接池中的有效性检查是为了确保连接在被归还到连接池之前仍然是可用的。通过在连接返回时进行有效性检查,可以及时发现无效的连接并进行处理,以确保下次获取连接时不会得到无效的连接。
配置 `jdbc.testOnReturn` 属性为 `true` 可以启用连接返回时的有效性检查。具体的检查方式和实现可能会根据所使用的连接池而有所不同。一般来说,连接池会执行一些简单的查询操作来验证连接的可用性。
需要注意的是,进行有效性检查会增加一定的性能开销,因此在配置时应根据实际情况和应用需求来考虑是否启用该属性。
具体的连接池实现和配置方式可能会有所不同,这里给出的解释是基于常见的 JDBC 连接池实现和属性配置。
相关问题
spring: datasource: url: jdbc:mysql://127.0.0.1:3306/a_flea?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true username: root password: 123456 #连接池的配置信息 initialSize: 10 minIdle: 10 maxActive: 100 maxWait: 60000 timeBetweenEvictionRunsMillis: 60000 minEvictableIdleTimeMillis: 300000 validationQuery: SELECT 1 FROM DUAL testWhileIdle: true testOnBorrow: false testOnReturn: false poolPreparedStatements: true maxPoolPreparedStatementPerConnectionSize: 20 #服务器地址 serverUrl: http://localhost:8080 # 文件上传 fileupload: server: ${serverUrl}/fileupload filepath: c:/file ueditor: imageActionName: uploadimage imageUrlPrefix: ${serverUrl}/fileupload imagePath: /fileupload/ imageFieldName: upfile imageMaxSize: 2048
这是一个 YAML 格式的配置文件,其中包含了 Spring 的数据源配置、文件上传配置和 UEditor 的图片上传配置信息。其中,数据源配置包含了数据库的连接信息、连接池的配置信息、以及验证查询语句等;文件上传配置包含了文件上传服务器的地址和文件保存路径;UEditor 的图片上传配置包含了图片上传接口的名称、图片 URL 前缀、图片保存路径、图片字段名、最大上传大小等信息。这些配置信息可以被应用程序读取和使用。
jdbc数据库封装连接池Druid代码
好的,以下是使用Druid连接池的Java代码示例:
1. 引入Druid的依赖库,可以在pom.xml中添加以下依赖:
```
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.16</version>
</dependency>
```
2. 在配置文件中添加Druid连接池的相关配置,比如application.properties:
```
# 数据库连接配置
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# Druid连接池配置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
spring.datasource.maxWait=60000
spring.datasource.timeBetweenEvictionRunsMillis=60000
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=SELECT 1 FROM DUAL
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
spring.datasource.poolPreparedStatements=true
spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
spring.datasource.filters=stat,wall,log4j
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
```
3. 在Java代码中使用Druid连接池,比如:
```java
import com.alibaba.druid.pool.DruidDataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DruidDemo {
public static void main(String[] args) throws SQLException {
// 创建Druid连接池
DruidDataSource dataSource = new DruidDataSource();
// 设置连接池属性
dataSource.setUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false");
dataSource.setUsername("root");
dataSource.setPassword("root");
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setInitialSize(5);
dataSource.setMinIdle(5);
dataSource.setMaxActive(20);
dataSource.setMaxWait(60000);
dataSource.setTimeBetweenEvictionRunsMillis(60000);
dataSource.setMinEvictableIdleTimeMillis(300000);
dataSource.setValidationQuery("SELECT 1 FROM DUAL");
dataSource.setTestWhileIdle(true);
dataSource.setTestOnBorrow(false);
dataSource.setTestOnReturn(false);
dataSource.setPoolPreparedStatements(true);
dataSource.setMaxPoolPreparedStatementPerConnectionSize(20);
dataSource.setFilters("stat,wall,log4j");
dataSource.setConnectionProperties("druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000");
// 获取连接对象
Connection conn = dataSource.getConnection();
// 执行SQL查询
PreparedStatement ps = conn.prepareStatement("SELECT * FROM user");
ResultSet rs = ps.executeQuery();
while (rs.next()) {
System.out.println(rs.getString("name"));
}
// 关闭连接
rs.close();
ps.close();
conn.close();
}
}
```
以上代码示例中,首先创建了一个Druid连接池对象,并设置了连接池属性,然后通过dataSource.getConnection()方法获取一个连接对象,最后执行SQL查询并关闭连接。
阅读全文