2015-04-01 4 views
2

Я использую mysql с соединителем-j из java для выполнения запроса. Я хотел бы знать размер возвращаемых данных, когда я использую его с/без сжатия.
Каков наилучший способ получить общий объем данных, переданных с сервера клиенту?Как узнать размер данных, возвращенный с сервера mysql с соединителем-j

код я использую работу с PreparedStatement и ResultSet:

PreparedStatement preparedStatement = connection.prepareStatement(sql); 
rs = preparedStatement.executeQuery(); 
while (rs.next()) { 
    function.apply(rs); 
} 

Могу ли я получить объем данных в Java?
Есть ли какой-либо внешний способ получить его?

+0

Какова актуальность вас упоминая «когда я использую его с/без сжатия»? Какое сжатие? И какие данные? Все, что вы показываете, - это фрагмент, который делает вещи и вещи с помощью набора результатов, а не конкретных данных внутри него. Вы, возможно, вытаскиваете изображение из базы данных или что-то в этом роде? – Gimby

+0

Нет изображений, только строк. сжатие встроено в разъем-j. это сжатие zlib. – oshai

ответ

0

Вы можете сделать это так:

StringBuffer sb = new StringBuffer(); 

while (rs.next()) { 
    function.apply(rs); 
    sb.append(<your_data>); 
} 

double len = sb.toString().length()/1024; 
+0

Могу ли я получить размер строки? и что, если он сжат? – oshai

+0

Я имел в виду, что вам нужно добавить все значение строки в виде строки в StringBuffer, а затем проверить ее размер – roeygol