亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java?數(shù)據(jù)庫連接池DBPool?介紹

 更新時間:2021年11月23日 10:59:42   作者:詠吟  
這篇文章主要給大家分享了Java?數(shù)據(jù)庫連接池DBPool?介紹,<BR>DBPool是一個高效的易配置的數(shù)據(jù)庫連接池。它除了支持連接池應(yīng)有的功能之外,還包括了一個對象池使你能夠開發(fā)一個滿足自已需求的數(shù)據(jù)庫連接池,下面一起來看看文章內(nèi)容的詳細(xì)介紹吧,需要的朋友可以參考一下

前言:

DBPool 是一個高效易配置的數(shù)據(jù)庫連接池,支持 JDBC 4.2,但目前已經(jīng)不維護(hù)了;本文簡單介紹下 DBPool 的使用,文中使用到的軟件版本:Java 1.8.0_191、DBPool 7.0.1、Spring Boot 2.3.12.RELEASE。

1、配置參數(shù)

參數(shù) 描述
name 連接池名稱
description 描述
driverClassName 驅(qū)動名稱
url 連接 url
user 用戶名
password 密碼
passwordDecoderClassName 密碼解密類名,需實現(xiàn)?snaq.db.PasswordDecoder 接口,需要有無參構(gòu)造方法
minPool 連接池最小連接數(shù)
maxPool 連接池最大連接數(shù)
maxSize 可以創(chuàng)建的最大連接數(shù)
idleTimeout 空閑連接數(shù)最大存活時間(秒),0 表示無限制
loginTimeout 創(chuàng)建連接的超時時間(秒)
validatorClassName 校驗類名,需實現(xiàn) snaq.db.ConnectionValidator 接口,需要有無參構(gòu)造方法
validatorQuery 校驗查詢語句

詳細(xì)說明可參考官網(wǎng)文檔:https://www.snaq.net/software/dbpool/

2、使用

2.1、直接使用

2.1.1、引入依賴

<dependency>

    <groupId>net.snaq</groupId>

    <artifactId>dbpool</artifactId>

    <version>7.0.1</version>

</dependency>

2.1.2、使用例子

package com.abc.demo.general.dbpool;

import snaq.db.DBPoolDataSource;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

public class DBPoolCase {

    public static void main(String[] args) {

        DBPoolDataSource dbPoolDataSource = new DBPoolDataSource();

        dbPoolDataSource.setName("DBPool連接池");

        dbPoolDataSource.setDescription("DBPool連接池測試");

        dbPoolDataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");

        dbPoolDataSource.setUrl("jdbc:mysql://10.40.9.11:3306/mydb?useUnicode=true&characterEncoding=UTF-8");

        dbPoolDataSource.setUser("root");

        dbPoolDataSource.setPassword("123456");

        dbPoolDataSource.setMinPool(5);

        dbPoolDataSource.setMaxPool(10);

        dbPoolDataSource.setMaxSize(30);

        dbPoolDataSource.setIdleTimeout(3600);

        dbPoolDataSource.setLoginTimeout(60);

        dbPoolDataSource.setValidationQuery("select 1");



        Connection connection = null;

        try {

            connection = dbPoolDataSource.getConnection();

            Statement st = connection.createStatement();

            ResultSet rs = st.executeQuery("select version()");

            if (rs.next()) {

                System.out.println(rs.getString(1));

            }

        } catch (SQLException e) {

            e.printStackTrace();

        } finally {

            close(connection);

        }

        //實際使用中一般是在應(yīng)用啟動時初始化數(shù)據(jù)源,應(yīng)用從數(shù)據(jù)源中獲取連接;并不會關(guān)閉數(shù)據(jù)源。

        dbPoolDataSource.release();

    }

    private static void close(Connection connection) {

        if (connection != null) {

            try {

                connection.close();

            } catch (SQLException e) {

                e.printStackTrace();

            }

        }

    }

}

2.2、在 SpringBoot 中使用

2.1.1、引入依賴

<parent>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-parent</artifactId>

    <version>2.3.12.RELEASE</version>

    <relativePath />

</parent>

<dependencies>

    <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-web</artifactId>

    </dependency>

    <dependency>

        <groupId>org.springframework</groupId>

        <artifactId>spring-jdbc</artifactId>

    </dependency>

    <dependency>

        <groupId>net.snaq</groupId>

        <artifactId>dbpool</artifactId>

        <version>7.0.1</version>

    </dependency>

    <dependency>

        <groupId>mysql</groupId>

        <artifactId>mysql-connector-java</artifactId>

    </dependency>

</dependencies>

2.1.2、單數(shù)據(jù)源

application.yml 配置:

spring:

  datasource:

    dbpool:

      name: DBPool連接池

      description: DBPool連接池測試

      driver-class-name: com.mysql.cj.jdbc.Driver

      url: jdbc:mysql://10.40.9.11:3306/myDb?useUnicode=true&characterEncoding=UTF-8

      user: root

      password: 123456

      min-pool: 5

      max-pool: 10

      max-size: 30

      idle-timeout: 3600

      login-timeout: 60

      validator-query: select 1

數(shù)據(jù)源配置類:

package com.abc.demo.config;

import org.springframework.boot.context.properties.ConfigurationProperties;

import org.springframework.boot.jdbc.DataSourceBuilder;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import snaq.db.DBPoolDataSource;

import javax.sql.DataSource;

@Configuration

public class DataSourceConfig {

    @Bean("dataSource")

    @ConfigurationProperties(prefix = "spring.datasource.dbpool")

    public DataSource dataSource() {

        return DataSourceBuilder.create().type(DBPoolDataSource.class).build();

    }

}

使用:

@Autowired

private DataSource dataSource;

2.1.3、多數(shù)據(jù)源

application.yml 配置:

spring:

  datasource:

    dbpool:

      db1:

        name: DBPool連接池1

        description: DBPool連接池測試1

        driver-class-name: com.mysql.cj.jdbc.Driver

        url: jdbc:mysql://10.40.9.11:3306/mydb?useUnicode=true&characterEncoding=UTF-8

        user: root

        password: 123456

        min-pool: 5

        max-pool: 10

        max-size: 30

        idle-timeout: 3600

        login-timeout: 60

        validator-query: select 1

      db2:

        name: DBPool連接池2

        description: DBPool連接池測試2

        driver-class-name: com.mysql.cj.jdbc.Driver

        url: jdbc:mysql://10.40.9.12:3306/mydb?useUnicode=true&characterEncoding=UTF-8

        user: root

        password: 123456

        min-pool: 5

        max-pool: 10

        max-size: 30

        idle-timeout: 3600

        login-timeout: 60

        validator-query: select 1

數(shù)據(jù)源配置類:

package com.abc.demo.config;

import org.springframework.boot.context.properties.ConfigurationProperties;

import org.springframework.boot.jdbc.DataSourceBuilder;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import snaq.db.DBPoolDataSource;

import javax.sql.DataSource;

@Configuration

public class DataSourceConfig {

    @Bean("dataSource1")

    @ConfigurationProperties(prefix = "spring.datasource.dbpool.db1")

    public DataSource dataSource1() {

        return DataSourceBuilder.create().type(DBPoolDataSource.class).build();

    }

    @Bean("dataSource2")

    @ConfigurationProperties(prefix = "spring.datasource.dbpool.db2")

    public DataSource dataSource2() {

        return DataSourceBuilder.create().type(DBPoolDataSource.class).build();

    }

}

使用:

@Autowired

@Qualifier("dataSource1")

private DataSource dataSource1;

@Autowired

@Qualifier("dataSource2")

private DataSource dataSource2;

 

到此這篇關(guān)于 Java 數(shù)據(jù)庫連接池DBPool 介紹的文章就介紹到這了,更多相關(guān) Java 連接池DBPool 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java函數(shù)式編程(四):在集合中查找元素

    Java函數(shù)式編程(四):在集合中查找元素

    這篇文章主要介紹了Java函數(shù)式編程(四):在集合中查找元素,本文是系列文章的第4篇,其它篇章請參閱相關(guān)文章,需要的朋友可以參考下
    2014-09-09
  • Java實戰(zhàn)之用Swing實現(xiàn)通訊錄管理系統(tǒng)

    Java實戰(zhàn)之用Swing實現(xiàn)通訊錄管理系統(tǒng)

    今天給大家?guī)淼氖荍ava實戰(zhàn)的相關(guān)知識,文章圍繞著Swing實現(xiàn)通訊錄管理系統(tǒng)展開,文中有非常詳細(xì)的代碼示例,需要的朋友可以參考下
    2021-06-06
  • java實現(xiàn)socket客戶端連接服務(wù)端

    java實現(xiàn)socket客戶端連接服務(wù)端

    本文是個人剛剛開始學(xué)習(xí)如何通過socket去發(fā)送信息下邊的案例,也是書上的在這留下筆記,最后附上一個實例,有需要的小伙伴可以參考下。
    2015-10-10
  • 詳解commons-pool2池化技術(shù)

    詳解commons-pool2池化技術(shù)

    本文主要是分析commons-pool2池化技術(shù)的實現(xiàn)方案,希望通過本文能讓讀者對commons-pool2的實現(xiàn)原理一個更全面的了解
    2021-06-06
  • SpringBoot使用JdbcTemplate訪問操作數(shù)據(jù)庫基本用法

    SpringBoot使用JdbcTemplate訪問操作數(shù)據(jù)庫基本用法

    這篇文章主要介紹了SpringBoot使用JdbcTemplate訪問操作數(shù)據(jù)庫基本用法,Spring對數(shù)據(jù)庫的操作在jdbc上s面做了深層次的封裝,使用spring的注入功能,可以把DataSource注冊到JdbcTemplate之中。下文詳細(xì)內(nèi)容需要的小伙伴可以參考一下
    2022-02-02
  • Action訪問Servlet的API的簡單實例

    Action訪問Servlet的API的簡單實例

    下面小編就為大家?guī)硪黄狝ction訪問Servlet的API的簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • Spring中的事件發(fā)布機(jī)制原理解析

    Spring中的事件發(fā)布機(jī)制原理解析

    這篇文章主要介紹了Spring中的事件發(fā)布機(jī)制原理解析,當(dāng)我們關(guān)心spring容器什么時候刷新,或者想在spring容器刷新的時候做一些事情,監(jiān)聽關(guān)心的事件,主要就是在ApplicationListener中寫對應(yīng)的事件,需要的朋友可以參考下
    2023-11-11
  • 類似Object監(jiān)視器方法的Condition接口(詳解)

    類似Object監(jiān)視器方法的Condition接口(詳解)

    下面小編就為大家?guī)硪黄愃芆bject監(jiān)視器方法的Condition接口(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • 一個MIDP俄羅斯方塊游戲的設(shè)計和實現(xiàn)

    一個MIDP俄羅斯方塊游戲的設(shè)計和實現(xiàn)

    一個MIDP俄羅斯方塊游戲的設(shè)計和實現(xiàn)...
    2006-12-12
  • 深入學(xué)習(xí)Java 熱部署的知識

    深入學(xué)習(xí)Java 熱部署的知識

    對于Java應(yīng)用程序來說,熱部署就是在運行時更新Java類文件。在基于Java的應(yīng)用服務(wù)器實現(xiàn)熱部署的過程中,類裝入器扮演著重要的角色。大多數(shù)基于Java的應(yīng)用服務(wù)器,包括EJB服務(wù)器和Servlet容器,都支持熱部署。,需要的朋友可以參考下
    2019-06-06

最新評論