Tomcat 与 MyBatis 的连接池

Tomcat connection pool with MyBatis

我想知道是否有人有使用 MyBatis 作为 ORM 在 Tomcat(7 或更高版本)中设置连接池的代码示例。

我想我需要将资源添加到我的 Tomcat conf 文件夹中的 context.xml 文件,然后 link 添加到 MyBatis。我看了一下,我发现的任何教程似乎都是 Spring 特定的。有没有人有简单的教程,或者他们可以概述完成此操作所需的步骤 运行?

iBatis 常见问题解答中的这个旧条目应该仍然适用于 myBatis:How do I use a JNDI DataSource with iBATIS in Tomcat?

你可以google在你的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 stack.

上测试过
  1. 确定您要实现的连接池机制(C3P0/DBCP 等)。

  2. 如果要将数据库用作 JNDI 数据源,则必须在 Tomcat 设置中将其声明为资源。有多种方法可以做到这一点。您可以遵循这份写得很好的指南 Tomcat JNDI connection pooling。我通常在我的应用程序的 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。您可以通过在中添加更多参数(如 removeAbandonedOnBorrow=true)来调整其设置上面的 Resource 元素。您应该将数据库的驱动程序 jar(例如 MySQL 连接器 Jar)放在 Tomcat 的 lib 文件夹中。

  1. 在此之后,根据您的 Mybatis 实现(XML 或基于 bean),您可以将此数据源注入 Mybatis。如果你用 bean 的方式来做,你可以这样做:

<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