项目中需要连接多种不同的数据库,下面是实现方法的代码。目前也在找更合适的,能够实现多数据库保持连接。
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;
}