Я столкнулся с проблемой, насколько я знаю, весь этот код работает до pst.executeQuery
. Я просто не могу понять, почему это проблема. У меня есть метод обновления/вставки и никаких проблем, связанных с ними. Я использую ярлык для отображения изображения, так что бы это было photoLabel.setIcon();
, или я просто полностью внедорожник. У меня есть одна кнопка для выбора файла, которая загружает изображение в метку, кнопка сохранения (эта функция) должна просто написать в базу данных в 12 столбцах/области под названием «Изображения».Java - JDBC/Swing - executeUpdate Не работает с BLOB
Пожалуйста Примечание - System.out.Println
для целей тестирования, просто
System.out.println("Working 5");
не будет показывать, следовательно, почему я знаю, что это что-то делать с pst.executeQuery(). Я пробовал искать в Интернете, использовал разные методы .execute, я пытался зафиксировать соединение и так далее. Увы, не повезло.
@Override
public void actionPerformed(ActionEvent e) {
Connection connection = null;
Statement statement = null;
ResultSet rs = null;
// String s = null;
try {
Class.forName("org.sqlite.JDBC");
connection = DriverManager.getConnection("jdbc:sqlite:employeeDatabase.sqlite");
//connection.setAutoCommit(false);
System.out.println("Working 1");
InputStream is = new FileInputStream(new File(s));
System.out.println("Working 2");
String sql = "insert into employees(Images) values(?)";
PreparedStatement pst = connection.prepareStatement(sql);
System.out.println("Working 3");
pst.setBlob(12, is);
System.out.println("Working 4");
pst.executeQuery();
connection.commit();
System.out.println("Working 5");
JOptionPane.showMessageDialog(null, "Data Inserted");
}
}
catch (Exception e1) {
JOptionPane.showMessageDialog(null, "Error");
}
}});
Это метод, чтобы выбрать изображение с помощью использования JFileChooser
uploadImage.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e){
JFileChooser fileChooser = new JFileChooser();
fileChooser.setCurrentDirectory(new File(System.getProperty("user.home")));
FileNameExtensionFilter filter = new FileNameExtensionFilter("*.JPG", "jpg","gif","png");
fileChooser.addChoosableFileFilter(filter);
fileChooser.addChoosableFileFilter(filter);
fileChooser.setMultiSelectionEnabled(false);
int result = fileChooser.showSaveDialog(null);
if(result == JFileChooser.APPROVE_OPTION){
File selectedFile = fileChooser.getSelectedFile();
String path = selectedFile.getAbsolutePath();
photoLabel.setIcon(ResizeImage(path));
s = path;
}
else if(result == JFileChooser.CANCEL_OPTION){
System.out.println("No Data");
}
}
});
Edit -
К не работает Я имею в виду, я не получаю ошибки, программа не нарушает , Только изображение не будет загружаться в базу данных, а код System.out.println("Working 5");
не печатает на консоль. Так что, похоже, он застрял/замерз в тот момент.
определить * не работает * –
@ScaryWombat Я не получаю ошибки, программа не сломается. Просто не загружайте изображение в базу данных и код System.out.println («Working 5»); не печатает на консоль. – TheNotoriousCoder
В вашем коде у вас есть 'try' - вы игнорируете улов? –