import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties;

public class Main {
    public static void main(String[] args) throws Exception {
        Properties properties = new Properties();
        properties.setProperty("user", "root");
        properties.setProperty("password", "xxxxxx");
        properties.put("allowMultiQueries", "true");


        Connection connection = DriverManager.getConnection("jdbc:mariadb://127.0.0.1:3306/test", properties);
        Statement statement = connection.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
        statement.setMaxRows(100);

// Comment out this line and we can read two result sets instead of one
        statement.setFetchSize(Integer.MIN_VALUE);

        statement.execute("SELECT 1; SELECT 2; SELECT 3;");

        int resultSetCounter = 1;
        boolean moreResults = true;
        while(moreResults) {
            ResultSet resultSet = statement.getResultSet();
            int rowCount = 0;
            while(resultSet.next()) {
                rowCount++;
            }
            System.out.println(rowCount + " rows in result set " + resultSetCounter++);
            moreResults = statement.getMoreResults(Statement.CLOSE_CURRENT_RESULT);
        }
        statement.close();
        connection.close();
    }
}
