import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; /** * */ /** * Test case for MySQL CursorFetch bug */ public class CursorFetchTest { private static final String DRIVER = "com.mysql.jdbc.Driver"; private static final String CONNECT_URI = "jdbc:mysql://192.168.201.2:3306/dbt3N2?useCursorFetch=true&useServerPrepStmts=true"; private static final String USER = "user"; private static final String PASSWORD = "password"; public static void main(String[] args) throws Exception { Class.forName(DRIVER); Connection conn = DriverManager.getConnection(CONNECT_URI, USER, PASSWORD); try { Statement stmtRead = conn.createStatement(); stmtRead.setFetchSize(1000); // Execute test query ResultSet rs = stmtRead.executeQuery("select extract(year from l_shipdate) as o_year, lineitem.l_extendedprice * (1 - lineitem.l_discount) as volume from lineitem where l_orderkey < 1000"); try { // Dump results while (rs.next()) { System.out.printf("%d\t%d\n", new Object[] {rs.getInt(1), rs.getInt(2)}); } } finally { rs.close(); } } finally { conn.close(); } } }