Eai pessoal, blz ?
fiz uma classe aqui para salvar dados no database. Eu consegui conectar ao banco de dados, e a insercao nos dados ficou certinho, so tem um porem: nao consegui salvar as imagens no banco. Qdo entro no bando de dados, aparece os dados salvos, como ano, porcentagem, mas as imagens (img1, img2, etc) ficam vazios … nao tem nada la … Abaixo segue a classe que salva, alem de anos e porcentagens, tambem imagens. Gostaria de saber o que tem de errado no que fiz …
package database;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.PreparedStatement;
import javax.swing.JOptionPane;
import chamadas.ClasseMae;
public class SaveBD {
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DATABASE_URL = "jdbc:mysql://localhost:3306/projeto";
String texto;
String img1, img2, img3, img4, img5, img6, imgSeg1, imgSeg2;
String[] img;
float[] porc;
float porc1, porc2, porcCresc;
int ano1, ano2;
public SaveBD() throws FileNotFoundException {
//atributos
ano1 = 2007;
ano2 = 2004;
texto = "ola mundo";
porc1 = 5;
porc2 = 10;
porcCresc = 5;
//imagens
img1 = "./TempImage/banda1.jpg";
img2 = "./TempImage/banda2.jpg";
img3 = "./TempImage/banda3.jpg";
img4 = "./TempImage/banda4.jpg";
img5 = "./TempImage/banda5.jpg";
img6 = "./TempImage/banda6.jpg";
File file_Urb = new File("./TempImage/urbana1.jpg");
File file_Veg = new File("./TempImage/vegetacao1.jpg");
if(file_Urb.exists()) {
imgSeg1 = "./TempImage/urbana1.jpg";
imgSeg2 = "./TempImage/urbana2.jpg";
} else if(file_Veg.exists()) {
imgSeg1 = "./TempImage/vegetacao1.jpg";
imgSeg2 = "./TempImage/vegetacao2.jpg";
}
//----------------------------//
Connection connection = null; // Gerencia a conexão
Statement statement = null; // Setença de consulta
PreparedStatement cstmt = null;
try {
try {
Class.forName(JDBC_DRIVER);
} catch(ClassNotFoundException e) {
JOptionPane.showMessageDialog(null, "DRIVER: Conexão não pode ser completada.\nTente novamente.", "Software name", 0);
}
File file1 = new File(imgSeg1);
FileInputStream fi1 = new FileInputStream(file1);
File file2 = new File(img1);
FileInputStream fi2 = new FileInputStream(file2);
File file3 = new File(img2);
FileInputStream fi3 = new FileInputStream(file3);
File file4 = new File(img3);
FileInputStream fi4 = new FileInputStream(file4);
File file5 = new File(imgSeg2);
FileInputStream fi5 = new FileInputStream(file5);
File file6 = new File(img4);
FileInputStream fi6 = new FileInputStream(file6);
File file7 = new File(img5);
FileInputStream fi7 = new FileInputStream(file7);
File file8 = new File(img6);
FileInputStream fi8 = new FileInputStream(file8);
File file9 = new File("./TempImage/imgComparada.jpg");
FileInputStream fi9 = new FileInputStream(file9);
// Estabelece a conexao com a base de dados
connection = DriverManager.getConnection(DATABASE_URL, "root", "");
// Cria a Statement para consultar a base de dados
statement = connection.createStatement();
//id, ano1, ano2, porcentagem1, porcentagem2, porcentagem crescimento, texto, imgB1, imgB2, imgB3, imgB4, imgB5, imgB6, imgSegm1, imgSeg2,
//imgComparada
String sql = "INSERT INTO save VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
cstmt = connection.prepareStatement(sql);
cstmt.setString(1, null);
cstmt.setInt(2, ano1);
cstmt.setInt(3, ano2);
cstmt.setFloat(4, porc1);
cstmt.setFloat(5, porc2);
cstmt.setFloat(6, porcCresc);
cstmt.setString(7, texto);
cstmt.setBinaryStream(8, fi2, (int)file2.length());
cstmt.setBinaryStream(9, fi3, (int)file3.length());
cstmt.setBinaryStream(10, fi4, (int)file4.length());
cstmt.setBinaryStream(11, fi1, (int)file1.length());
cstmt.setBinaryStream(12, fi5, (int)file5.length());
cstmt.setBinaryStream(13, fi6, (int)file6.length());
cstmt.setBinaryStream(14, fi7, (int)file7.length());
cstmt.setBinaryStream(15, fi8, (int)file8.length());
cstmt.setBinaryStream(16, fi9, (int)file9.length());
cstmt.executeUpdate();
JOptionPane.showMessageDialog(null, "Salvo com sucesso!");
} catch(SQLException exc) {
JOptionPane.showMessageDialog(null, "Conexão não pode ser completada.\nTente novamente.", "Software name", 0);
exc.printStackTrace();
}
finally {
try {
cstmt.close();
statement.close();
connection.close();
} catch (SQLException a) {
a.printStackTrace();
}
}
}
}