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

用mybatis+spring配置连接池

苏坚成
2023-03-14

我使用的是用Spring配置的mybatis。一切都很好,但是在这种配置下没有连接池。每次我执行一些SQL语句,它都会创建一个新的连接。有什么简单的方法可以用mybatis+Spring配置连接池吗?

<?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:aop="http://www.springframework.org/schema/aop"
           xmlns:tx="http://www.springframework.org/schema/tx"
           xmlns:mybatis="http://mybatis.org/schema/mybatis-spring"
           xsi:schemaLocation="
         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
         http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
         http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
         http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring.xsd">

        <mybatis:scan base-package="test.mapper" />

        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource" />
            <property name="configLocation" value="classpath:test/mybatis.xml" />
            <property name="mapperLocations" value="classpath*:test/mapper/*.xml" />
        </bean>

        <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource" />
        </bean>

        <bean id="personMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
            <property name="mapperInterface" value="test.mapper.ScenarioMapper" />
            <property name="sqlSessionFactory" ref="sqlSessionFactory" />
        </bean>

        <bean id="dataSource" class="org.springframework.jdbc.datasourceorg.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@localhost:1521/xe"/>
        <property name="username" value="TEST"/>
        <property name="password" value="test123"/>
    </bean>
    </beans>

共有1个答案

逄烨
2023-03-14

您可以参考我的配置,我使用德鲁伊作为连接池:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-2.5.xsd
           http://www.springframework.org/schema/aop 
           http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
           http://www.springframework.org/schema/mvc
           http://www.springframework.org/schema/mvc/spring-mvc.xsd
           http://www.springframework.org/schema/tx 
           http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

    <context:component-scan base-package="cn.itcast.customer"/>

    <context:property-placeholder location="classpath:db.properties" />
    <bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
        destroy-method="close">
        <property name="driverClassName" value="${jdbc.driver}"></property>
        <property name="url" value="${jdbc.url}"></property>
        <property name="username" value="${jdbc.username}"></property>
        <property name="password" value="${jdbc.password}"></property>
        <property name="maxIdle" value="10" />
        <property name="minIdle" value="5" />
    </bean>

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

        <property name="dataSource" ref="dataSource"></property>

        <property name="mapperLocations"
            value="classpath:cn/itcast/customer/dao/CustomerMapper.xml" />
    </bean>


    <bean name="transactionManager"
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

        <property name="dataSource" ref="dataSource"></property>
    </bean>
    <tx:annotation-driven transaction-manager="transactionManager"/>


    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="cn.itcast.customer.dao"/>
    </bean> 
</beans>
 类似资料:
  • 我想在应用程序和Oracle数据库之间建立连接。我没有以下数据库信息: URL 用户名 密码 我使用的配置如下所示: 这就是我如何获得一个新的实例: 之后,我尝试通过以下代码检索会话: null 但是,使用以下堆栈跟踪生成错误:

  • 本文向大家介绍spring boot配置MySQL数据库连接、Hikari连接池和Mybatis的简单配置方法,包括了spring boot配置MySQL数据库连接、Hikari连接池和Mybatis的简单配置方法的使用技巧和注意事项,需要的朋友参考一下 此方法为极简配置,支持MySQL数据库多库连接、支持Hikari连接池、支持MyBatis(包括Dao类和xml文件位置的配置)。 1、pom.

  • 我有我的巴蒂斯 xml config 我有依赖关系 我有存储库 但是当我尝试构建priject时,我出错了。 描述: 无法确定数据库类型 NONE 的嵌入式数据库驱动程序类 行动: 如果你想要一个嵌入式数据库,请在类路径上放置一个受支持的数据库。如果要从特定配置文件加载数据库设置,则可能需要激活它(当前没有配置文件处于活动状态)。 我怎么设置SqlMapConfig.xml? 我尝试在行中写入 但

  • 我正在开发一个需要在大型机上调用DB2函数以获取id的应用程序。 在spring应用程序上下文中,我定义了jdbc模板来查询zOS上的DB2: 然后,我将数据源定义如下: 以上工作。然而,看看ibm的db2jcc内部。jar文件中,我看到了一个用于连接池的datasource类-com。ibm。db2.jcc。DB2ConnectionPoolDataSource。所以我试着用它来代替上面的一个,

  • 提前感谢您的帮助!

  • 我有一个使用Jetty启动的spring应用程序。 bean配置: 我在启动应用程序时遇到以下错误: 依赖关系信息: 我是Spring的新人。感谢您的支持!