Java 请回答nks,但您能否在第一种方法中澄清什么是processList(列表)?作为sb变量,你指的是列表?我有点困惑,processList只是一个想象中的方法,你可以用它做任何其他事情。看起来我用错了sb的名字。我会修好的。 String query=
Java 请回答nks,但您能否在第一种方法中澄清什么是processList(列表)?作为sb变量,你指的是列表?我有点困惑,processList只是一个想象中的方法,你可以用它做任何其他事情。看起来我用错了sb的名字。我会修好的。 String query= ,java,sql,database-connection,Java,Sql,Database Connection,请回答nks,但您能否在第一种方法中澄清什么是processList(列表)?作为sb变量,你指的是列表?我有点困惑,processList只是一个想象中的方法,你可以用它做任何其他事情。看起来我用错了sb的名字。我会修好的。 String query= "SELECT * FROM myTable"; Statement st = conn.createStatement(); ResultSet rs = st.executeQuery(query); ResultSetMetaData r
请回答nks,但您能否在第一种方法中澄清什么是processList(列表)?作为sb变量,你指的是列表?我有点困惑,
processList
只是一个想象中的方法,你可以用它做任何其他事情。看起来我用错了sb的名字。我会修好的。
String query= "SELECT * FROM myTable";
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(query);
ResultSetMetaData rsmd = rs.getMetaData();
// how many columns it the table
int columnsNumber = rsmd.getColumnCount();
List<String> list = new ArrayList<String>();
while (rs.next()) {
for(int i=0;i<columnsNumber;i++){
String row= ""
String row= row + " "+ rs.getString(i);
}
list.add(row);
}
Integer limit = 50000;
Integer offset = 0;
String query= "SELECT COUNT(*) as total FROM myTable";
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(query);
Integer total = rs.getInt("total");
Integer itrCount = (int) Math.ceil((double) total/limit);
for(int i=0; i< itrCount; i++){
String query1 = "SELECT * FROM myTable limit " + limit + " offset " + offset;
Statement st1 = conn.createStatement();
ResultSet rs1 = st1.executeQuery(query1);
ResultSetMetaData rsmd = rs1.getMetaData();
int columnsNumber = rsmd.getColumnCount();
List<String> list = new ArrayList<String>();
while (rs1.next()) {
for(int i=0;i<columnsNumber;i++){
String row= ""
String row= row + " "+ rs1.getString(i);
}
list.add(row);
}
offset += limit;
// do something with your list
}
int limit = 50000;
String sql = "select * from myTable";
PreparedStatement statement = conn.prepareStatement(sql);
ResultSet rs = statement.executeQuery();
int columnCount = rs.getResultSetMetaData().getColumnCount();
List<String> list = new ArrayList<String>();
while (rs.next()){
if (list.size() == limit){
processList(list);
list = new ArrayList<String>();
}
StringBuilder row = new StringBuilder();
for (int i=1; i <= columnCount; i++){
row.append(rs.getString(i));
}
list.add(row.toString());
}
processList(list);
select * from
(select ordered.*, rownum as r
from (select * from myTable order by ... ) ordered
) where r >= 0 and r < 50000
int batchSize = 50000;
String sql = "select * from "
+ " (select ordered.*, rownum as r "
+ " from (select * from myTable order by ... ) ordered "
+ " ) where r >= ? and r < ? ";
PreparedStatement ps = conn.prepareStatement(sql);
int lowerBound = 0;
boolean keepTryingQuery = true;
while (keepTryingQuery){
List<String> list = new ArrayList<String>();
upperBound = lowerBound + batchSize;
ps.setInt(1, lowerBound);
ps.setInt(2, upperBound);
ResultSet rs = ps.executeQuery();
int columnCount = rs.getResultSetMetaData.getColumnCount();
while (rs.next()){
StringBuilder row = new StringBuilder();
for (int i = 1; i <= columnCount; i++){
row.append(rs.getString(i));
}
list.add(row.toString());
}
processList(list);
keepTryingQuery = list.size() > 0;
lowerBound = upperBound;
}