簡體   English   中英

與MyBatis的Tomcat連接池

[英]Tomcat connection pool with MyBatis

我想知道是否有人使用MyBatis作為ORM在Tomcat(7或更高版本)中設置連接池的任何代碼示例。

我假設我需要在我的Tomcat conf文件夾中的context.xml文件中添加一個資源,然后將其鏈接到MyBatis。 我看過了,我發現的任何教程似乎都是Spring特有的。 有沒有人有一個簡單的教程,或者他們可以概述啟動和運行所需的步驟?

iBatis FAQ中有一個舊條目仍應適用於myBatis: 如何在Tomcat中使用帶有iBATIS的JNDI數據源?

您可以谷歌獲取有關在Tomcat版本中配置數據源的詳細信息,然后配置MyBatis(它與iBatis配置不同):

<environment id="development">
    <transactionManager type="JDBC" />
    <dataSource type="JNDI">
        <property name="data_source" value="java:comp/env/jdbc/yourDatasourceName"/>
    </dataSource>
</environment>

有很多方法可以做到這一點。 我假設您的意思是實現Tomcat(而不是Spring)托管連接池。 我已在MySQl / Spring 4 / Mybatis-spring 1.1堆棧上測試過。

  1. 找出要實現的連接池機制(C3P0 / DBCP等)。

  2. 如果要將數據庫用作JNDI數據源,則必須將其聲明為Tomcat設置中的資源。 有很多方法可以做到這一點。 您可以按照這個寫得很好的指南Tomcat JNDI連接池 我通常在我的應用程序的META-INF目錄中的context.xml中添加以下條目:

<Context> <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource" maxTotal="100" maxIdle="30" maxWaitMillis="10000" username="javauser" password="javadude" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/javatest"/> </Context>

Tomcat使用此文件來調用其自己的默認連接池,在本例中為DBCP 2.您可以通過在上面的Resource元素中添加更多參數(如removeAbandonedOnBorrow=true )來調整其設置。 您應該將數據庫的驅動程序jar(例如MySQL Connector Jar)放在Tomcat的lib文件夾中。

  1. 在此之后,根據您的Mybatis實現(基於XML或bean),您可以將此數據源注入Mybatis。 如果你正在以豆子的方式做,你可以這樣做:

<bean id="dbDataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName" value="java:comp/env/jdbc/TestDB"/> </bean> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dbDataSource" /> </bean> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dbDataSource" /> <property name="typeAliasesPackage" value="com.example.model"/> <property name="mapperLocations" value="classpath*:*.xml" /> </bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.example.dao" /> </bean>

MapperScannerConfigurer是必需的,因為它搜索給定的目錄以查找映射器xml文件。 您還可以使用舊方法定義mybatis-config.xml文件,方法是在configLocation屬性中的sqlSessionFactory bean中注入文件的位置。

暫無
暫無

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

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