/** * Execute queries. * * @param queries queries list * @param streaming is streaming flag * @param isRewritable is rewritable flag * @param rewriteOffset rewriteoffset * @return queryResult * @throws QueryException exception */ public AbstractQueryResult executeBatch( final List<Query> queries, boolean streaming, boolean isRewritable, int rewriteOffset) throws QueryException { for (Query query : queries) { query.validate(); } this.moreResults = false; final SendTextQueryPacket packet = new SendTextQueryPacket(queries, isRewritable, rewriteOffset); try { packet.send(writer); } catch (MaxAllowedPacketException e) { if (e.isMustReconnect()) { connect(); } throw new QueryException( "Could not send query: " + e.getMessage(), -1, ExceptionMapper.SqlStates.INTERRUPTED_EXCEPTION.getSqlState(), e); } catch (IOException e) { throw new QueryException( "Could not send query: " + e.getMessage(), -1, ExceptionMapper.SqlStates.CONNECTION_EXCEPTION.getSqlState(), e); } try { return getResult(queries, streaming, false); } catch (QueryException qex) { if (qex.getCause() instanceof SocketTimeoutException) { throw new QueryException( "Connection timed out", -1, ExceptionMapper.SqlStates.CONNECTION_EXCEPTION.getSqlState(), qex); } else { throw qex; } } }
private int sendQuery(SendTextQueryPacket packet) throws QueryException { try { return packet.send(writer); } catch (MaxAllowedPacketException e) { if (e.isMustReconnect()) { connect(); } throw new QueryException( "Could not send query: " + e.getMessage(), -1, ExceptionMapper.SqlStates.INTERRUPTED_EXCEPTION.getSqlState(), e); } catch (IOException e) { throw new QueryException( "Could not send query: " + e.getMessage(), -1, ExceptionMapper.SqlStates.CONNECTION_EXCEPTION.getSqlState(), e); } }