項目中需要連接多種不同的數據庫,下面是實現方法的代碼。目前也在找更合適的,能夠實現多數據庫保持連接。
public JSONArray getDualByJdbc(Database database, String sql) throws ClassNotFoundException, SQLException {
//聲明Connection對象
Connection con;
String driver = "";
String url = "jdbc:";
//驅動程序名
//URL指向要訪問的數據庫名
if ("oracle".equals(database.getType())) {
driver = "oracle.jdbc.OracleDriver";
url += "oracle:thin:@//" + database.getIp() + ":1521/orcl";
} else if ("sqlserver".equals(database.getType())) {
driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
url += "sqlserver://" + database.getIp() + ":" + database.getPort() + ";DatabaseName=" + database.getName();
}
//數據庫用戶名 username
String username = database.getUsername();
//數據庫密碼 password
String password = database.getPassword();
//遍歷查詢結果集
//加載驅動程序
Class.forName(driver);
//1、連接數據庫
con = DriverManager.getConnection(url, username, password);
//聲明Connection對象
Connection con;
String driver = "";
String url = "jdbc:";
//驅動程序名
//URL指向要訪問的數據庫名
if ("oracle".equals(database.getType())) {
driver = "oracle.jdbc.OracleDriver";
url += "oracle:thin:@//" + database.getIp() + ":1521/orcl";
} else if ("sqlserver".equals(database.getType())) {
driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
url += "sqlserver://" + database.getIp() + ":" + database.getPort() + ";DatabaseName=" + database.getName();
}
//數據庫用戶名 username
String username = database.getUsername();
//數據庫密碼 password
String password = database.getPassword();
//遍歷查詢結果集
//加載驅動程序
Class.forName(driver);
//1、連接數據庫
con = DriverManager.getConnection(url, username, password);
if (!con.isClosed()) {
//2、創建statement類對象,用來執行sql語句
Statement statement = con.createStatement();
//3、ResultSet類,用來存放獲取的結果集
JSONArray array = new JSONArray();
//2、創建statement類對象,用來執行sql語句
Statement statement = con.createStatement();
//3、ResultSet類,用來存放獲取的結果集
JSONArray array = new JSONArray();
ResultSet rs = statement.executeQuery(sql);
ResultSetMetaData metaData = rs.getMetaData();
int columnCount = metaData.getColumnCount();
ResultSetMetaData metaData = rs.getMetaData();
int columnCount = metaData.getColumnCount();
while (rs.next()) {
JSONObject json = new JSONObject();
for (int i = 1; i <= columnCount; i++) {
String columnName = metaData.getColumnLabel(i);
String value = rs.getString(columnName);
json.put(columnName, value);
}
array.add(json);
}
for (int i = 1; i <= columnCount; i++) {
String columnName = metaData.getColumnLabel(i);
String value = rs.getString(columnName);
json.put(columnName, value);
}
array.add(json);
}
rs.close();
con.close();
return array;
}
return null;
}
con.close();
return array;
}
return null;
}