将方法直接写成main调用,建立两个线程,都能获取到jdbc连接,成功执行查询;但使用JUnit,建立两个线程,在jdbc中就获取不到连接,这是什么原因呢?
附jdbc连接获取方法:
/******************************************************************************
* Copyright (C) 2011 ShenZhen ComTop Information Technology Co.,Ltd
* All Rights Reserved.
* 本软件为深圳康拓普开发研制。未经本公司正式书面同意,其他任何个人、团体不得使用、
* 复制、修改或发布本软件.
*****************************************************************************/
package com.comtop.component.desktopremind.MulThreadunittest.JDBC;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCUtils {
/**
* Name of TimesTen driver
*/
private static final String oracleDriver = "oracle.jdbc.OracleDriver";
/**
* Prefix URL to pass to DriverManager.getConnection() for TimesTen Direct Connection
*/
private static final String oracleUrl = "jdbc:oracle:thin:@10.10.5.2:1521:dotr";
/** 用户名 */
private static final String userName = "trd";
/** 用户密码 */
private static final String userPwd = "trd";
/**
* 获取数据库连接对象
*
* @return 数据库连接对象
* @throws SQLException
*/
public Connection getConnection() throws SQLException {
Connection conn = null;
try {
Class.forName(oracleDriver);
conn = DriverManager.getConnection(oracleUrl,userName,userPwd);
} catch (Exception e) {
System.out.println("获取连接失败!!!");
}
return conn;
}
/**
* 释放DB资源
*
* @param rs ResultSet 结果集
* @param stat Statement 语句对象
*/
public void closeConnection(ResultSet rs, Statement stat, Connection conn2) {
closeConnection(rs);
closeConnection(stat);
closeConnection(conn2);
}
/**
* 释放DB资源
*
* @param rs ResultSet 结果集
*/
public void closeConnection(ResultSet rs) {
if (rs != null) {
try {
rs.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
/**
* 释放DB资源
*
* @param stat Statement 语句对象
*/
public void closeConnection(Statement stat) {
if (stat != null) {
try {
stat.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
/**
* 释放DB资源
*
* @param stat Statement 语句对象
*/
public void closeConnection(Connection conn2) {
if (conn2 != null) {
try {
conn2.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
}
------解决方案--------------------
因为JUnit并不支持多线程