Jboss迁移到Tomcat之手记(三)-JDBC

首先, Data source 可以做为 Resource(JDNI 方式 ) 可以在 $TOMCAT_HOME/conf/context.xml server.xml GlobalNamingResources 元素里配置成全局资源或 $project.war/META-INF/conext.xml 配置成应用级资源,然后在 web application context 配置该 JNDI, 如(假设 JNDI 名字为 /jdbc/my-ds ):
(context.xml)
<Context>
     <Resource name="jdbc/my-ds" auth="Container" type="javax.sql.DataSource"
     maxActive="80" maxIdle="50" maxWait="10000"
     username="aaaa" password="****" driverClassName="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost:3306/DBNAME" />
</Context>
(appcontext.xml)
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">  
    <property name="jndiName" value="java:comp/env/jdbc/my-ds"/>   
</bean>
也可以集成如 spring 框架直接配成 bean 。因为之前 jboss 就用了 spring, 所以还是用 spring bean 来配置一个 Apache common DBCP 实例。
(Mysql, oracle 只需要改 driver oracle.jdbc.driver.OracleDriver, url connection string( jdbc:oracle:thin:@$TNSNAME 或者 jdbc:oracle:thin:@$TNSSTRING, username, password)
<?xml version=”1.0” encoding=”utf-8” ?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
        <bean id="my-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
     <property name="driverClassName" value=”com.mysql.jdbc.Driver” />
    <property name="url" value=”jdbc:mysql://localhost:3306/DBNAME” />
     <property name="username" value=”aaaa” />
    <property name="password" value=”***” / >
    <property name="maxActive" value=”80” />
    <property name="maxIdle" value=”50” />
 </bean>
</beans>
如此的配置在 Jboss/Tomcat 上都是可以成功的,不过据 http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html 里说到, Common DBCP 是单线程模式的,复杂的( 60+ classes ),缓慢的方式了, Apache 基金组织已经改写了变成 Tomcat JDBC Connection Pool 组件。 Tomcat JDBC CP spring 配置如下(需要 tomcat-jdbc.jar 复制到 project.war/WEB-INF/lib 里,当然如果配置成 global resource 则需要放在 $TOMCAT_HOME/lib 里,该文件在 build tomcat 时可以得到):
<?xml version=”1.0” encoding=”utf-8” ?>
<!-- !DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" http://www.springframework.org/dtd/spring-beans.dtd   旧版本用法 , 不再支持 -->
<beans  xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:context="http://www.springframework.org/schema/context"
       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">
<bean id="my-ds" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close"
p:driverClassName="com.mysql.jdbc.Driver"
        p:url="jdbc:mysql://localhost:3306/DBNAME"
        p:username="aaaa"
        p:password="****"
        p:initialSize="10"
        p:minIdle="10"
        p:maxIdle="50"
        p:maxActive="80"
        p:maxWait="10000"
        p:jmxEnabled="true"
        />

你可能感兴趣的:(tomcat,jdbc,职场,source,Data,休闲)