当前位置: 代码迷 >> J2EE >> 请问大神一个相当基础的有关问题,为什么new线程执行报错,不new线程执行不报错
  详细解决方案

请问大神一个相当基础的有关问题,为什么new线程执行报错,不new线程执行不报错

热度:113   发布时间:2016-04-17 23:51:28.0
请教大神一个相当基础的问题,为什么new线程执行报错,不new线程执行不报错
想知道,为什么代码一会报错,代码二不会报错
代码一:

public static void main(String[] args) {
new Thread(new OperateDB()).start();
}
class OperateDB implements Runnable{
@Override
public void run() {
try {
PoolManager.getInstance();
String url="jdbc:microsoft:sqlserver://192.168.1.231:1434;DatabaseName=data_engine";
Connection con = DriverManager.getConnection(url,"sa","scxn");
Connection con2 = DriverManager.getConnection("jdbc:mysql://192.168.1.231:3308/world","root","scxn");
} catch (SQLException e) {
e.printStackTrace();
PoolLogUtils.getInstance().writeLog("未知异常1:"+e.getMessage(),e.getCause().toString(),TestUtils.getDate());
} catch (Exception e) {
e.printStackTrace();
PoolLogUtils.getInstance().writeLog("未知异常2:"+e.getMessage(),e.getCause().toString(),TestUtils.getDate());
}
}

代码二:

public static void main(String[] args) {
try {
PoolManager.getInstance();
String url="jdbc:microsoft:sqlserver://192.168.1.231:1434;DatabaseName=data_engine";
Connection con = DriverManager.getConnection(url,"sa","scxn");
Connection con2 = DriverManager.getConnection("jdbc:mysql://192.168.1.231:3308/world","root","scxn");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

代码一报错为:

com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: 

** BEGIN NESTED EXCEPTION ** 

com.mysql.jdbc.CommunicationsException
MESSAGE: Communications link failure due to underlying exception: 

** BEGIN NESTED EXCEPTION ** 

java.io.EOFException

STACKTRACE:

java.io.EOFException
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1913)
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2304)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2803)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:812)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1235)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2670)
at com.mysql.jdbc.Connection.<init>(Connection.java:1531)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at OperateDB.run(TestMain.java:73)
at java.lang.Thread.run(Unknown Source)


** END NESTED EXCEPTION **



Last packet sent to the server was 8 ms ago.

STACKTRACE:

com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: 

** BEGIN NESTED EXCEPTION ** 

java.io.EOFException

STACKTRACE:

java.io.EOFException
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1913)
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2304)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2803)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:812)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1235)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2670)
at com.mysql.jdbc.Connection.<init>(Connection.java:1531)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at OperateDB.run(TestMain.java:73)
at java.lang.Thread.run(Unknown Source)


** END NESTED EXCEPTION **



Last packet sent to the server was 8 ms ago.
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2515)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2803)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:812)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1235)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2670)
at com.mysql.jdbc.Connection.<init>(Connection.java:1531)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at OperateDB.run(TestMain.java:73)
at java.lang.Thread.run(Unknown Source)


** END NESTED EXCEPTION **



Last packet sent to the server was 9 ms ago.
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2741)
at com.mysql.jdbc.Connection.<init>(Connection.java:1531)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
  相关解决方案