使用java把oracle数据库多个表数据放到接口中,接口参数可以放多个表以及表的过滤条件
时间: 2024-05-12 20:21:17 浏览: 11
以下是一个示例代码,可以将多个表的数据放到接口中,并且可以通过接口参数传递表名和过滤条件:
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class OracleDataFetcher {
private Connection connection;
public OracleDataFetcher(String url, String username, String password) throws SQLException {
connection = DriverManager.getConnection(url, username, password);
}
public List<String[]> fetchData(String[] tableNames, String[] filters) throws SQLException {
List<String[]> result = new ArrayList<>();
for (int i = 0; i < tableNames.length; i++) {
String tableName = tableNames[i];
String filter = (i < filters.length) ? filters[i] : "";
String query = "SELECT * FROM " + tableName + " WHERE " + filter;
PreparedStatement statement = connection.prepareStatement(query);
ResultSet resultSet = statement.executeQuery();
int columnCount = resultSet.getMetaData().getColumnCount();
while (resultSet.next()) {
String[] row = new String[columnCount];
for (int j = 1; j <= columnCount; j++) {
row[j - 1] = resultSet.getString(j);
}
result.add(row);
}
statement.close();
}
return result;
}
public void close() throws SQLException {
connection.close();
}
}
```
使用示例:
```java
OracleDataFetcher fetcher = new OracleDataFetcher("jdbc:oracle:thin:@localhost:1521:xe", "username", "password");
String[] tableNames = {"table1", "table2", "table3"};
String[] filters = {"id > 100", "", "name LIKE 'A%'"}; // 第二个表没有过滤条件
List<String[]> data = fetcher.fetchData(tableNames, filters);
fetcher.close();
// 使用data进行后续操作
```
在上面的示例中,我们通过`OracleDataFetcher`类建立了与Oracle数据库的连接,并可以使用`fetchData`方法获取多个表的数据。`fetchData`方法接受两个参数:一个包含表名的字符串数组和一个包含过滤条件的字符串数组。如果某个表没有过滤条件,可以将其对应的过滤条件设置为空字符串。`fetchData`方法返回一个`List<String[]>`类型的结果,其中每个`String[]`表示一条记录的数据。可以使用这个结果进行后续的操作。最后,我们需要调用`close`方法关闭数据库连接。