1. 程式人生 > >JDBC學習之路(八)可滾動結果集和資料分頁

JDBC學習之路(八)可滾動結果集和資料分頁

如果在資料庫中有大量資料,然後要求從第150個數據開始讀取,讀10個數據,這種要求在論壇回覆和交流中常見

,當然了,主流資料庫都提供了指定查詢集的方法,下面我們先來演示一下如果不使用Mysql的查詢集方法怎麼做,當

然,這個在實際開發中應該用處不大,但是作為一種想法還是需要學習一下

package com.bird.jdbc;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class ScrollTest {

	/**
	 * @param args
	 * @throws SQLException 
	 */
	public static void main(String[] args) throws SQLException {
		read();
	}
	
	
	public static void read() throws SQLException{
		Connection con = null;
		Statement st = null;
		ResultSet rs = null;
		
		try {
			con = Temple.getConnection();
			st = con.createStatement();
			rs = st.executeQuery("select id,name,birthday,money from user");
	
			rs.absolute(150);
			int count = 0;
			while(rs.next()){
				count++;
				System.out.println(rs.getString("name"));
				if(count==10)break;
			}
		} finally{
			Temple.free(con, st, rs);
		}
	}
}

其實很簡單,就是將所有的結果讀取到記憶體中然後進行分配,當然了,這樣的話如果結果太多就會出現記憶體溢位,可

以說是一種非常不好的做法,當然了,為了實現這個功能,Mysql提供了在資料庫內部指定查詢的方法,下面我們來

演示一下

package com.bird.jdbc;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class ScrollTest {

	/**
	 * @param args
	 * @throws SQLException 
	 */
	public static void main(String[] args) throws SQLException {
		read();
	}
	
	
	public static void read() throws SQLException{
		Connection con = null;
		Statement st = null;
		ResultSet rs = null;
		
		try {
			con = Temple.getConnection();
			st = con.createStatement();
			rs = st.executeQuery("select id,name,birthday,money from user limit 150,10");
	
//			rs.absolute(150);
//			int count = 0;
			while(rs.next()){
			//	count++;
				System.out.println(rs.getString("name"));
			//	if(count==10)break;
			}
		} finally{
			Temple.free(con, st, rs);
		}
	}
}

這個主要就是SQL語句的問題,只要是把語句裡面寫上Limie就可以了,當然了,這些sql語句可以在Mysql的手冊裡面

找到



相關推薦

JDBC學習滾動結果資料

如果在資料庫中有大量資料,然後要求從第150個數據開始讀取,讀10個數據,這種要求在論壇回覆和交流中常見 ,當然了,主流資料庫都提供了指定查詢集的方法,下面我們先來演示一下如果不使用Mysql的查詢集方法怎麼做,當 然,這個在實際開發中應該用處不大,但是作為一種想法還是需要

Python小白學習—【變數】【基本資料型別分類】【集合】【集合的功能】

一、變數 變數的作用:記錄狀態的變化變數的值:描述不同的狀態 二、五大基本資料型別的分類 五大基本資料型別(數字 字串 列表 元祖 字典) 按照可變不可變來進行分類 可變:列表、字典 不可變:字串、數字、元祖 我個人理解,所謂可變,是指當修改內容是,內容改變,地址不變。(即新修改的內容可以覆蓋之

Spark學習 Spark2.3 HA群的布式安裝

serve html 元數據 不安裝 rec ive cut 再次 apps 一、下載Spark安裝包 1、從官網下載 http://spark.apache.org/downloads.html 2、從微軟的鏡像站下載 http://mirrors.hust.

Git+Jenkins學習發布maven項目及按版本發布

maven 創建 tar.gz pri .cn class a settings sed family 一、什麽是Maven maven是一個項目管理和綜合工具。Maven提供給開發人員構建一個完整的生命周期框架。 開發團隊可以自動完成該項目的基礎設施建設,

Vue學習 --- vue-router使用

1.首先安裝vue-router ,在專案的資料夾中使用npm命令即npm install vue-router –save(提示:如果你在vue-cli腳手架工具中已經選擇安裝路由可以不用執行這一步) 2.在實戰中,一般路由放在src/router/index.js中具體操作

Netty學習-Google Protobuf編碼

Protobuf是一個靈活,高效,結構化的資料序列化框架,相比於XML等傳統的序列化工具,它更小,更快,更簡單。Protobuf支援資料結構化一次可以到處使用,甚至可以跨語言使用,通過程式碼生成工具可以自動生成不同語言版本的原始碼,甚至可以在使用不同版本的資料結構程序間進行資料傳遞,實現資料

SQL資料庫學習

資料庫介紹: 在網頁上的主程式中進行註冊操作,然後把資料傳送給人,人傳遞這些資料到資料庫當中。 為什麼學ADO.NET:之前我們所學的只能在查詢分析器中檢視資料,操作資料。我們不能讓一個普通使用者使用SQL去操作,所以我們搭建一個介面(Web Winform)讓使

Nginx學習Nginx中的事件驅動過程詳解-----以listenfd註冊過程為例

Nginx的高效得益於它的事件驅動機制,整個事件驅動機制基本框架就是linux下的select,poll,epoll這幾個IO多路複用模式,但是nginx絕不單單只是使用它們這麼簡單,今天以epoll模式為例,從nginx最開始的listenfd的監聽的過程來說明nginx是

Django學習Admin的學習

Admin 是django自帶的自動化資料管理介面,被授權的使用者可以在Admin中管理資料庫。 配置Admin admin是django自帶的一個app。 1,執行程式: python manage.py createsuperuer #建立超級使用者 之後就會創

JDBC學習防止SQL注入,PreparedStatement探索

   現在登入註冊或者其他很多地方遇到使用者輸入的內容可以直接拿到資料庫內部去進行執行SQL語句,這個是一項很危險的運動,因為你不知道使用者會輸入什麼,如果使用者對SQL語句很熟悉,他就可以在輸入的時候加上''兩個冒號作為特殊字元,這樣的話會讓計算機認為他輸入的是SQL語句

JDBC學習

以前使用過JDBC,對Mysql也進行過一些增刪改查的操作,但是還真沒有系統的學習過,現在藉助傳智播客的視訊系統學習一下,下面記錄這幾天的心得。 1.首先得安裝Mysql,這個就不說了,順便下載Mysql-Connector-java這個JDBC實現包,把他/它匯入到自己

jdbc學習

有幾個問題 1)存在硬編碼(usernamet和password, url和classnameDriver)隨時會改 2)只要一次載入class檔案就好了,每次操作都載入檔案 3)connection物件每次查詢操作時都要建立,很浪費資源 4)關閉資原始碼長而且沒有技

JDBC學習十二使用Spring中的JdbcTemple實現資料查詢

                其實在Spring這個框架中,提供了一些對JDBC訪問資料庫的封裝,其中JdbcTemplate就是一個很好用的類,下面來演示一下這個類的一些用法。首先需要匯入commons-logging.jar,和spring.jar這兩個包。然後使用他的功能就可以了,可以說,Spring

python學習

[1] size class dex epc uri msu 語句 這就是 繼續昨天的學習,學到了數組。 首先有兩個數組,name1和name2.我們可以將兩個數組合並 name1=[1,2,3,4] name2=[5,6,7,8] names=name1.extend(

Linux學習幫助命令

查看系統 lin 查看 inux 舉例 config pro nbsp 雜項 幫助命令man .man  命令  #獲取指定命令的幫助 .man  ls    #查看ls的幫助 man的級別 1 查看命令的幫助 2 查看可被內核調用的函數的幫助 3 查看函數的

python學習使用socketserver進行ftp斷點續傳

def += __init__ con 不存在 不為 local 接收 class 最近學習python到socketserver,本著想試一下水的深淺,采用Python3.6. 目錄結構如下: receive_file和file為下載或上傳文件存放目錄,ftp_clie

我的學習SQL盲註學習

網絡安全 dvwa sql盲註 我的學習之路,現在零基礎,是一個小白,請各位大牛批評指正!寫下這篇,是對自己的一個思路的整理,僅供參考。 Dvwa中登錄進入,首先在DVWA Security中設置等級為low,然後進入SQL Injection(blind),隨意輸入一個數字進行抓包,然後找

Hibernate學習

ring int 表示 gen prop generator 需要 blog hibernate 簡述 多對多關系映射 多對多關系映射需要一張中間表來維護關系      一:Role類與Function類 1 publi

Hibernate學習

oid bject 需要 .com build action logs 結果 gin hql:hibernate query language hibernate查詢語言 1、單屬性查詢 1 public void testQuery1(){ 2

PHP學習

設有 src fault ... 根據 條件判斷 滿足 循環 獲取 2017.08.13 Day 5  周日  晴 PHP-順序結構 順序結構就像一條直線,按著順序一直往下執行。我們編寫的代碼默認都是按照順序結構執行的。 PHP條件結構之if…else… 條件結