Я хочу сохранить байтовый массив файла изображения в своей базе данных SQL
У меня есть ошибка при подключении к базе данных mysql, т. е.,
Exception in thread "main" java.lang.NullPointerException at Image.db.main(db.java)
Что я уже пробовал:
Я преобразовал свое изображение в байтовый массив с помощью входного потока файла
public AES() { try { JFileChooser fc = new JFileChooser(); int i = fc.showOpenDialog(frame); if (i == JFileChooser.APPROVE_OPTION) { File f = fc.getSelectedFile(); filepath = f.getPath(); byte[] b = new byte[(int) f.length()]; try { FileInputStream fileInputStream = new FileInputStream(f); fileInputStream.read(b); System.out.println("byte " +b); } catch (FileNotFoundException e) { System.out.println("File Not Found."); e.printStackTrace(); } }У меня есть ошибка при подключении к базе данных mysql, т. е.,
Exception in thread "main" java.lang.NullPointerException at ImageConversion.Showdb.main(Showdb.java)
код:
JFileChooser fc = new JFileChooser(); File f = fc.getSelectedFile(); Class.forName("com.mysql.jdbc.Driver"); Connection con=DriverManager.getConnection( "jdbc:mysql://localhost:3306/image","root",""); System.out.println(con); String sql = "INSERT INTO img_enc(image,date) VALUES(?,now())"; byte[] b = new byte[(int) f.length()]; FileOutputStream fileOutputStream = new FileOutputStream(f); fileOutputStream.write(b); PreparedStatement pstmt = con.prepareStatement(sql); pstmt.setBytes(1, b); pstmt.executeUpdate(); pstmt.close();пожалуйста, помогите мне решить эту проблему...
Afzaal Ahmad Zeeshan
Подумайте о том, чтобы избежать хранения большого двоичного объекта в базе данных; сохраните изображение в файловой системе и сохраните имя файла в базе данных.
Richard MacCutchan
Где происходит ошибка?
Member 13770582
byte[] b = новый байт[(int) f.длина()];
Richard MacCutchan
Это говорит о том, что переменная f не была инициализирована. Вам нужно использовать свои инструменты отладки, чтобы выяснить, почему.