Während des Entwicklungsprozesses der Java API ist die Verbindung zur Datenbank eine häufige Anforderung. Da die Verwendung von DriverManager zum Herstellen einer Datenbankverbindung jedes Mal einen hohen Overhead mit sich bringt, ist die Verwendung der Verbindungspooltechnologie erforderlich. Druid ist ein leistungsstarker JDBC-Verbindungspool mit einer Reihe leistungsstarker Funktionen wie Überwachung, Statistik und Erweiterung. In diesem Artikel wird die Verwendung von Druid bei der Entwicklung der Java-API vorgestellt.
1. Einführung in Druid
Druid ist ein von Alibaba entwickelter Datenbankverbindungspool, der sich durch hervorragende Leistung, umfangreiche Funktionen und einfache Verwendung auszeichnet. Die Vorteile des Druid-Verbindungspools sind wie folgt:
2. Verwenden Sie Druid für die Verbindungspoolverwaltung. Schauen wir uns an, wie Sie Druid für die Verbindungspoolverwaltung in Java-Anwendungen verwenden.
<!-- 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);
validationQuery‘ wird verwendet, um zu überprüfen, ob die Verbindung gültig ist. Es erfordert eine Abfrageanweisung (das Ausführungsergebnis der Anweisung spielt keine Rolle).
-testWhileIdle: Wird bei der Beantragung einer Verbindung getestet. Wenn die Leerlaufzeit größer als timeBetweenEvictionRunsMillis ist, führen Sie validationQuery aus, um zu überprüfen, ob die Verbindung gültig ist.
-testOnBorrow: Führen Sie bei der Beantragung einer Verbindung validationQuery aus, um zu überprüfen, ob die Verbindung gültig ist. Diese Konfiguration verringert die Leistung.
-testOnReturn: Führen Sie beim Zurückgeben der Verbindung validationQuery aus, um zu überprüfen, ob die Verbindung gültig ist. Durch diese Konfiguration wird die Leistung verringert und eine Beurteilung zum Verbindungspool hinzugefügt.
-poolPreparedStatements: ob PreparedStatement, also PSCache, zwischengespeichert werden soll. PSCache verbessert die Leistung von Datenbanken, die Cursor unterstützen, wie z. B. Oracle, erheblich. Es wird empfohlen, es unter MySQL zu schließen.
-maxOpenPreparedStatements: Nach dem Aktivieren von poolPreparedStatements müssen Sie die Anzahl der zwischengespeicherten Anweisungen für jede Verbindung angeben.
-filters: Der Attributtyp ist eine Zeichenfolge, und das Erweiterungs-Plug-In wird über einen Alias konfiguriert :
监控统计用的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));
In diesem Artikel wird die Verwendung von Druid für die Verbindungspoolverwaltung bei der Entwicklung der Java-API vorgestellt. Durch die Verwendung von Druid können wir nicht nur die Leistung der Anwendung verbessern, sondern durch Funktionen wie Überwachungsstatistiken und SQL-Ausführungsprotokolle auch ein umfassenderes Verständnis des Betriebs der Anwendung erlangen.
Das obige ist der detaillierte Inhalt vonVerwendung von Durid für die Datenbankverbindungspoolverwaltung in der Java-API-Entwicklung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!