簡體   English   中英

在xml mapper配置中用mybatis中的HikariConfig配置HikariCp dataSource

[英]Configure HikariCp dataSource with HikariConfig in mybatis in xml mapper configuration

我正在嘗試使用 xml 配置在 mybatis 中配置 HikariCp

我想知道如何在映射器配置中的 object 中設置 hikariCongig object。

我的配置如下所示:

<environment id="development">
            <transactionManager type="JDBC" />
            <dataSource type="com.xyz.config.HikariCPDataSourceFactory" >
                <property name="jdbcUrl" value="jdbc:postgresql://localhost:5432/beta-prod-db" />
                <property name="username" value="postgres" />
                <property name="password" value="${password}" />
                <property name="poolName" value="test"/>
                <property name="maxPoolSize" value="20" />
                <property name="registerMbeans" value="true"/>
                <property name="minimumIdle" value="5"/>
            </dataSource>
        </environment>

HikariCPDataSourceFactory.java

public class HikariCPDataSourceFactory extends PooledDataSourceFactory {
    public HikariCPDataSourceFactory() {
        //HikariConfig hikariConfig = new HikariConfig();
        this.dataSource = new HikariDataSource();
    }
}

我沒有找到任何在線文章帽子顯示如何通過 xml 配置在 hikarIDataSource object 中設置 hikariConfig object。

using Spring i can crearte a bean for hikariConfig and pass it as a parameter in hikariDataSource object, but here i am not using spring so need to find a way with xml.

Without hikariConfig object if i try to get the HikariPoolMXBean object from datSource i get the exception org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.lang.IllegalArgumentException: dataSource or dataSourceClassName or jdbcUrl is required. org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.lang.IllegalArgumentException: dataSource or dataSourceClassName or jdbcUrl is required.

HikariCP 1.4.0 MBean InstanceNotFoundException

本文說它僅在我設置 hikariConfig Object 時才有效

我找不到在 xml 中配置 hikariConfig 的方法這是我使用的對我很有效的解決方法。

  HikariDataSource hikariDataSource = null;
  HikariConfig hikariConfig = new HikariConfig();
  dataSource.copyStateTo(hikariConfig);
  hikariDataSource = new HikariDataSource(hikariConfig);

一旦我得到數據源 object,我將 state 復制到 hikariConfig object 並使用它創建新的數據源 ZA8CFDE6331BD59EB26ACZF84。 我們也可以將其設為 singleton,因此只創建一個實例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM