Как говорится в названии, я хочу очень быстро извлекать изображения (хранящиеся в longblob) при перемещении jslider. У меня 360 случаев, и это работает без ошибок, но проблема заключается в задержке/задержке каждого случая/изображения при перемещении jslider. Я тестировал эту идею с изображениями, полученными с локальной машины, и работает очень быстро/чисто. Я знаю, что проблема может быть связана с подключением к Интернету, но, поверьте, у меня есть загрузка/загрузка по крайней мере 3-4 МБ/с.Прочитайте изображение из longblob MySQL очень быстро
Лишнее примечание: стола двигатель: MyISAM колонка: LONGBLOB с каждым изображением ~ 170-200 кб - .png
//calling jslider and setup
jslider1 = new javax.swing.JSlider(); //my jslider
jslider1.setMajorTickSpacing(10);
jslider1.setMaximum(360);
jslider1.setMinorTickSpacing(5);
jslider1.setOrientation(javax.swing.JSlider.VERTICAL);
//and my change event
private void jslider1StateChanged(javax.swing.event.ChangeEvent evt) {
int x = jslider1.getValue();
switch (x) {
case 1:
try {
String sql = "select imga from test where deg ='" + x + "'";
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
if (rs.next()) {
byte[] imagedata = rs.getBytes("imga");
format = new ImageIcon(imagedata);
jLabel1.setIcon(format); //where I put my image
}
} catch (Exception e) {
e.printStackTrace();
}
break;
case 2:
//[...] //I have 360 cases
}
} // close state changed
В чем смысл 'PreparedStatement', когда вы пишете такой код, как' String sql = ", выберите imga из теста, где deg = '" + x + "'"; '? – adarshr
PreparedStatement pstm = conn.prepareStatement ("выберите imga из теста, где deg = '" + x + "'"); ResultSet rs = pstm.executeQuery(); // Теперь все в порядке? –
Вы не поняли. Вся цель 'PreparedStatement' такова, что база данных может кэшировать запросы. По этой причине вы должны использовать параметризованные запросы. Например, 'выберите imga из теста, где deg =?'. Если вы непосредственно добавляете значения, это не только плохо работает, но также подвержено атакам SQL-инъекций. Пожалуйста, прочитайте «PreparedStatement's» перед тем, как использовать их. – adarshr