jdbcpagingtest.java

来自「工厂版本管理系统,STRUTS2框架,用于管理商品的版本,便于有效的控制版本」· Java 代码 · 共 110 行

JAVA
110
字号
package com.dingl.jdbc;


import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class JdbcPagingTest extends CommonTestCase{

	
	String sql = "select /*+ FIRST_ROWS(10) */ * from demo_table";
	
	

	
	public void tearDown() throws Exception {
	}
	
	
	public void testUseScrollResult() throws SQLException  {
		
		PreparedStatement stmt =  conn.prepareStatement(sql, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
//		stmt.setMaxRows(10);
		long time1 = System.currentTimeMillis();
		ResultSet rs = stmt.executeQuery();
		assertTrue(rs.next());
//		rs.absolute(200000);
		int i = 0;
		do {
			
			i++;
			if (i > 900000 ) {
				System.out.println("id   " + rs.getString(1) + "Address "
						+ rs.getString(2) + "  CITY   " + rs.getString(3) 
						+ "  CITY   " + rs.getString(4) +
						"  CITY   " + rs.getString(5));
			}
			if (i > 900010) {
				break;
			}
		} while (rs.next()); 
		long time2 = System.currentTimeMillis();
		System.out.println("useScrollResult Time is " + (time2-time1));
		
	}
	
	public void testUseScrollResultWithFetch() throws SQLException  {
		
		PreparedStatement stmt =  conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
		long time1 = System.currentTimeMillis();
		ResultSet rs = stmt.executeQuery();
//		rs.setFetchDirection(ResultSet.FETCH_FORWARD);
		rs.setFetchSize(10);
		assertTrue(rs.next());
		rs.absolute(200000);
		int i = 0;
		do {
			System.out.println("id   " + rs.getString(1) + "Address "
					+ rs.getString(2) + "  CITY   " + rs.getString(3) 
					+ "  CITY   " + rs.getString(4) +
					"  CITY   " + rs.getString(5));
			i++;
			if (i > 10) {
				break;
			}
		} while (rs.next()); 
		long time2 = System.currentTimeMillis();
		System.out.println("useScrollResultWithFetchTime is " + (time2-time1));
		
	}
	
	public void testUseDefaultResult() throws SQLException {
		String sql = "  SELECT * FROM (SELECT A.*, ROWNUM RN FROM " +
				"(SELECT * FROM demo_table) A WHERE ROWNUM <= 900010)" +
				" WHERE RN >= 900000";
//		String sql = " select * from " +
//				"	     (select a.*, ROWNUM RN" +
//				"            from (select * from demo_table)  " +
//				"                   a  where rownum<=200000" +
//				"    )" +
//				"     and rn<=10";
		PreparedStatement stmt =  conn.prepareStatement(sql);
		long time1 = System.currentTimeMillis();
		ResultSet rs = stmt.executeQuery();
		assertTrue(rs.next());
//		rs.absolute(200000);
		
		int i = 0;
		do {
			System.out.println("id   " + rs.getString(1) + "Address "
					+ rs.getString(2) + "  CITY   " + rs.getString(3) 
					+ "  CITY   " + rs.getString(4) +
					"  CITY   " + rs.getString(5));
			i++;
			if (i > 10) {
				break;
			}
		} while (rs.next()); 
		long time2 = System.currentTimeMillis();
		System.out.println("useDefaultResultTime is " + (time2-time1));
	}
	
	
	
	
	
	

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?