繁体   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