如果數(shù)據(jù)庫數(shù)據(jù)過大,用java讀取數(shù)據(jù)庫,分頁存入集合,每分頁一次集合就被調(diào)用一次,這個java實現(xiàn)的方式是怎么樣的?直接直接在sql語句上面加個for循環(huán)嗎?for(){String sql = "SELECT ID,name, url From websites limit " + (i * 2) + ",2;";......}
2 回答

UYOU
TA貢獻1878條經(jīng)驗 獲得超4個贊
import java.sql.Connection; import java.sql.DriverManager; public class DBHelper { private static final String driver = "com.mysql.jdbc.Driver";//數(shù)據(jù)庫驅(qū)動 private static final String url = "jdbc:mysql://localhost:3306/gumysql?useUnicon=true&characterEncoding=UTF-8"; private static final String username = "root"; private static final String password = "root"; static { try { Class.forName(driver); } catch (Exception e) { e.printStackTrace(); } } private static Connection conn = null; //單例模式返回數(shù)據(jù)庫連接 public static Connection getConnection() throws Exception { if(conn == null) { conn = DriverManager.getConnection(url, username, password); return conn; } else { return conn; } } }
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; public class ReadDBPage { /** * @param pageNo 表示第幾頁 * @param pageSize 表示每頁的數(shù)量 * @return */ public List<String> query(int pageNo, int pageSize) { //計算起始值,比如假如每頁條數(shù)為5,第一頁是0 - 4,第二頁是5 - 9;。。。。 int pageStart = (pageNo - 1) * pageSize; Connection conn = null; PreparedStatement stmt = null; ResultSet rs = null; String sql = " select * from compare limit ?,?; "; List<String> mapList = new ArrayList<String>(); try { conn = DBHelper.getConnection(); stmt = conn.prepareStatement(sql); //把參數(shù)設(shè)置到 ?號里面 stmt.setInt(1, pageStart); stmt.setInt(2, pageSize); rs = stmt.executeQuery(); while (rs.next()) { mapList.add(rs.getString("id")); } return mapList; } catch (Exception e) { e.printStackTrace(); return null; } finally { if (rs != null) { try { rs.close(); rs = null; } catch (Exception e) { e.printStackTrace(); } } if (stmt != null) { try { stmt.close(); stmt = null; } catch (Exception e) { e.printStackTrace(); } } } } }
import java.util.List; public class Bootstrap { public static void main(String args[]){ ReadDBPage read = new ReadDBPage(); //查詢第1頁的數(shù)據(jù),每頁數(shù)據(jù)為5條 List<String> strList = read.query(1,5); //查詢第2頁的數(shù)據(jù),每頁數(shù)據(jù)為5條 List<String> strList2 = read.query(2,5); //查詢第2頁的數(shù)據(jù),每頁數(shù)據(jù)為4條 List<String> strList3 = read.query(2,4); System.out.println(strList); System.out.println(strList2); System.out.println(strList3); } }
添加回答
舉報
0/150
提交
取消