Pendant le processus de développement de l'API Java, la connexion à la base de données est une exigence courante. Étant donné que l'utilisation de DriverManager pour obtenir une connexion à la base de données à chaque fois entraînera une surcharge importante, il est nécessaire d'utiliser la technologie de regroupement de connexions. Druid est un pool de connexions JDBC hautes performances doté d'une série de fonctions puissantes telles que la surveillance, les statistiques et l'expansion. Cet article explique comment utiliser Druid dans le développement de l'API Java.
1. Introduction à Druid
Druid est un pool de connexions à une base de données développé par Alibaba. Il présente les caractéristiques d'excellentes performances, de fonctions riches et d'utilisation simple. Les avantages du pool de connexions Druid sont les suivants :
2. Utilisez Druid pour la gestion du pool de connexions
Voyons comment utiliser Druid pour la gestion du pool de connexions dans les applications Java.
<!-- druid --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.10</version> </dependency>
//创建 Properties 对象用于存储配置信息 Properties props = new Properties(); //设置连接池基本属性 props.put("driverClassName", "com.mysql.jdbc.Driver"); props.put("url", "jdbc:mysql://localhost:3306/test"); props.put("username", "root"); props.put("password", "root"); //连接属性配置 props.put("initialSize", "5"); props.put("minIdle", "5"); props.put("maxActive", "20"); props.put("maxWait", "60000"); props.put("timeBetweenEvictionRunsMillis", "60000"); props.put("minEvictableIdleTimeMillis", "300000"); props.put("validationQuery", "SELECT 'x'"); props.put("testWhileIdle", "true"); props.put("testOnBorrow", "false"); props.put("testOnReturn", "false"); props.put("poolPreparedStatements", "true"); props.put("maxOpenPreparedStatements", "20"); props.put("filters", "stat,wall,log4j"); //创建 DruidDataSource 实例 DruidDataSource dataSource = new DruidDataSource(); dataSource.configFromPropety(props);
-testWhileIdle : Testé lors de la demande de connexion. Si le temps d'inactivité est supérieur à timeBetweenEvictionRunsMillis, exécutez validationQuery pour vérifier si la connexion est valide.
-testOnBorrow : lors d'une demande de connexion, exécutez validationQuery pour vérifier si la connexion est valide. Cette configuration réduira les performances.
-testOnReturn : lors du retour de la connexion, exécutez validationQuery pour vérifier si la connexion est valide. Faire cette configuration réduira les performances et ajoutera un jugement au pool de connexions
-poolPreparedStatements : s'il faut mettre en cache PrepareStatement, ce qui. est PSCache. PSCache améliore considérablement les performances des bases de données prenant en charge les curseurs, telles qu'Oracle. Il est recommandé de le fermer sous mysql.
-maxOpenPreparedStatements : Après avoir activé poolPreparedStatements, vous devez spécifier le nombre d'instructions mises en cache sur chaque connexion
-filters : Le type d'attribut est une chaîne et le plug-in d'extension est configuré via un alias. Les plug-ins couramment utilisés sont : #🎜 🎜#
监控统计用的filter:stat 日志用的filter:log4j 防御SQL注入的filter:wall
Connection conn = dataSource.getConnection();
// 创建 Druid 连接池 DruidDataSource dataSource = new DruidDataSource(); //... 配置数据库连接池信息 // 配置监控统计 // 设置监控统计用的 Filter,用于统计监控信息 WallFilter wallFilter = new WallFilter(); wallFilter.setDbType("mysql"); StatFilter statFilter = new StatFilter(); statFilter.setSlowSqlMillis(1000); statFilter.setLogSlowSql(true); // 设置 Druid 连接池的 Filters dataSource.setProxyFilters(Arrays.asList(wallFilter, statFilter)); // 打印 SQL 执行日志 Log4jFilter logFilter = new Log4jFilter(); logFilter.setStatementExecutableSqlLogEnable(true); dataSource.setProxyFilters(Collections.singletonList(logFilter));
Cet article présente comment utiliser Druid pour la gestion du pool de connexions dans le développement de l'API Java. En utilisant Druid, nous pouvons non seulement améliorer les performances de l'application, mais également acquérir une compréhension plus complète du fonctionnement de l'application grâce à des fonctions telles que les statistiques de surveillance et les journaux d'exécution SQL.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!