数据库是oracle
数据源配置:
<!-- c3p0数据源连接池 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close" >
<property name="maxPoolSize" value="10"/>
<property name="minPoolSize" value="1"/>
<property name="maxIdleTime" value="1800"/>
<property name="maxStatements" value="0"/>
<property name="acquireIncrement" value="2"/>
<property name="idleConnectionTestPeriod" value="${c3p0.idleConnectionTestPeriod}"/>
<property name="driverClass" value="${jdbc.driverClassName}"/>
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>然后用上面的数据源配置了jdbcTemplateint threadNum = 3;
ThreadPoolExecutor threadPool = new ThreadPoolExecutor(threadNum, threadNum+10, 60,
        TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>(),
        new ThreadPoolExecutor.DiscardOldestPolicy());
long sysTime1 = System.currentTimeMillis();
List<FutureTask<String>> listF =  new ArrayList<FutureTask<String>>();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < valuelist.size(); i++) {
//在ParserDataTask使用jdbcTemplate查询数据库
        ParserDataTask pdt =  new ParserDataTask(namelist, map, configDbName, vParam, templ);
FutureTask ftask = new FutureTask<String>(pdt);
threadPool.execute(ftask);
}结果多线程比单线程查出来的时间总是要长几秒 这是为什么呢