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

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

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

前言:

DBPool 是一個(gè)高效易配置的數(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ū)動(dòng)名稱
url 連接 url
user 用戶名
password 密碼
passwordDecoderClassName 密碼解密類名,需實(shí)現(xiàn)?snaq.db.PasswordDecoder 接口,需要有無參構(gòu)造方法
minPool 連接池最小連接數(shù)
maxPool 連接池最大連接數(shù)
maxSize 可以創(chuàng)建的最大連接數(shù)
idleTimeout 空閑連接數(shù)最大存活時(shí)間(秒),0 表示無限制
loginTimeout 創(chuàng)建連接的超時(shí)時(shí)間(秒)
validatorClassName 校驗(yàn)類名,需實(shí)現(xiàn) snaq.db.ConnectionValidator 接口,需要有無參構(gòu)造方法
validatorQuery 校驗(yàn)查詢語句

詳細(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連接池測(cè)試");

        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);

        }

        //實(shí)際使用中一般是在應(yīng)用啟動(dòng)時(shí)初始化數(shù)據(jù)源,應(yīng)用從數(shù)據(jù)源中獲取連接;并不會(huì)關(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連接池測(cè)試

      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連接池測(cè)試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連接池測(cè)試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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

    Action訪問Servlet的API的簡單實(shí)例

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

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

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

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

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

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

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

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

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

最新評(píng)論