当前位置: 首页 > 知识库问答 >
问题:

在xml映射器配置中使用mybatis中的HikariConfig配置HikariCp dataSource

滑景胜
2023-03-14

我正在尝试使用xml配置在mybatis中配置HikariCp

<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>
public class HikariCPDataSourceFactory extends PooledDataSourceFactory {
    public HikariCPDataSourceFactory() {
        //HikariConfig hikariConfig = new HikariConfig();
        this.dataSource = new HikariDataSource();
    }
}

我没有找到任何在线文章展示如何通过xml配置在hikarIDataSource对象中设置hikariConfig对象。

使用Spring我可以为hikariConfig创建一个bean,并将其作为hikariDataSource对象中的参数传递,但是这里我没有使用Spring,所以需要找到一种使用XML的方法。

如果没有hikariConfig对象,如果我试图从datSource获取HikariPoolMXBean对象,我会得到异常org.apache.ibatis.builder.builderException:解析SQL映射器配置时出错。原因:java.lang.IllegalArgumentException:需要dataSource或dataSourceClassName或jdbcUrl。

本文指出,只有当我设置hikariConfig对象时,它才起作用

共有1个答案

巫马俊力
2023-03-14

我无法找到用xml配置hikariConfig的方法,这里是我使用的工作方法,对我来说很有效。

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

获得dataSource对象后,我将状态复制到hikariConfig对象,并使用它创建新的dataSource对象。此外,我们可以将其设置为单例,这样只创建一个实例。

 类似资料:
  • 本节描述了可用于映射器的各种配置模式。它假设你已经完成了 对象关系教程(1.x API) 并且知道如何构造和使用基本的映射器和关系。 映射Python类 声明性映射 非动态创建显式基础(与mypy一起使用,类似) 使用修饰符的声明性映射(无声明基) 具有数据类和属性的声明性映射 命令(又称经典)映射 具有数据类和属性的命令式映射 映射器配置概述 要映射的类 表或其他from子句对象 属性字典 其他

  • XML 映射配置文件 MyBatis 的 XML 配置文件包含了影响 MyBatis 行为甚深的设置和属性信息。 XML 文档 的高层级结构如下: configuration 配置 properties 属性 settings 设置 typeAliases 类型命名 typeHandlers 类型处理器 objectFactory 对象工厂 plugins 插件 environments 环境 e

  • 我需要的几乎和这个问题一样的东西是如何将Hibernate类映射转换为Spring应用程序上下文? 但我不应该使用注释,我需要保存xml映射,那么我应该如何在spring配置中指定映射呢? 另外,很抱歉可能重复,但我只看到基于注释的建议 我当前的配置与注释:hibernate.cfg.xml 应用程序上下文。xml sessionFactory bean:

  • 问题内容: 是否可以在应用程序中同时具有MyBatis的基于XML +注释的配置。 我之所以这样问,是因为在我的应用程序中,我使用的是基于注释的方法。但是在一种情况下,我需要使用IN子句,可以使用 基于XML的配置。 但是,当我启动应用程序时,它似乎无法识别基于注释的映射器,并给了我一个例外。 因此,我想知道是否可以在应用程序中同时具有MyBatis的基于XML + Annotation的配置。请

  • 本文向大家介绍Java的MyBatis框架中Mapper映射配置的使用及原理解析,包括了Java的MyBatis框架中Mapper映射配置的使用及原理解析的使用技巧和注意事项,需要的朋友参考一下 Mapper的内置方法 model层就是实体类,对应数据库的表。controller层是Servlet,主要是负责业务模块流程的控制,调用service接口的方法,在struts2就是Action。Ser

  • Mybatis 配置文件 MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录 mybatis官方中文文档