import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* 測試的最大連接數(shù)
* oracle的默認(rèn)連接數(shù)為135
* Mysql的默認(rèn)連接數(shù)為100
* @author kxbin
*
*/
class testMaxConn {
int count = 0; // 連接數(shù)
Connection[] conn = new Connection[1000];
Statement[] stmt = new Statement[1000];
ResultSet[] rs = new ResultSet[1000];
/**
* 數(shù)據(jù)庫連接方法(oracle)
*/
public void testOracleMaxConn() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url = "jdbc:oracle:thin:@localhost:1521:compare";
for (count = 0; count < 135; count++) {
conn[count] = DriverManager.getConnection(url,"nxcompare", "64compare");
stmt[count] = conn[count].createStatement();
rs[count] = stmt[count].executeQuery("SELECT * FROM users");
System.out.print(count + "\t");
}
} catch (SQLException ex1) {
System.out.println("\n" + ex1.toString());
} catch (InstantiationException ex2) {
System.out.println("\n" + ex2.toString());
} catch (ClassNotFoundException ex3) {
System.out.println("\n" + ex3.toString());
} catch (IllegalAccessException ex4) {
System.out.println("\n" + ex4.toString());
} finally {
try {
System.out.println("\n系統(tǒng)打開的連接數(shù)"+ count--+ " oracle connections.\n請按回車按鈕,進(jìn)行關(guān)閉");
System.in.read();
System.out.println("\n閉關(guān)連接:");
for (; count >= 0; count--) {
rs[count].close();
stmt[count].close();
conn[count].close();
System.out.print(count + "\t");
}
} catch (SQLException ex) {
System.out.println("\n 關(guān)閉連接出現(xiàn)SQLException:"+ ex.toString());
} catch (IOException io_ex) {
System.out.println("\n 關(guān)閉連接出現(xiàn)IOException:"+ io_ex.toString());
}
}
}
/**
* 數(shù)據(jù)庫連接方法(Mysql)
*/
public void testMysqlMaxConn() {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url = "jdbc:mysql://localhost:3306/tm?useUnicode=true&characterEncoding=GBK";
for (count = 0; count < 100; count++) {
conn[count] = DriverManager.getConnection(url,"root", "root");
stmt[count] = conn[count].createStatement();
rs[count] = stmt[count].executeQuery("SELECT * FROM userinfo");
System.out.print(count + "\t");
}
} catch (SQLException ex1) {
System.out.println("\n" + ex1.toString());
} catch (InstantiationException ex2) {
System.out.println("\n" + ex2.toString());
} catch (ClassNotFoundException ex3) {
System.out.println("\n" + ex3.toString());
} catch (IllegalAccessException ex4) {
System.out.println("\n" + ex4.toString());
} finally {
try {
System.out.println("\n系統(tǒng)打開的連接數(shù)"+ count--+ " MYSQL connections.\n請按回車按鈕,進(jìn)行關(guān)閉");
System.in.read();
System.out.println("\n閉關(guān)連接:");
for (; count >= 0; count--) {
rs[count].close();
stmt[count].close();
conn[count].close();
System.out.print(count + "\t");
}
} catch (SQLException ex) {
System.out.println("\n 關(guān)閉連接出現(xiàn)SQLException:"+ ex.toString());
} catch (IOException io_ex) {
System.out.println("\n 關(guān)閉連接出現(xiàn)IOException:"+ io_ex.toString());
}
}
}
/**
* 測試方法
*
* @param args
* @throws Exception
*/
public static void main(String args[]) throws Exception {
// new testMaxConn().testOracleMaxConn(); //測試Oracle默認(rèn)最大連接數(shù)135
new testMaxConn().testMysqlMaxConn(); //測試MYSQL,默認(rèn)最大連接數(shù)100
}
}